Я пытаюсь сделать легко доступную переменную TimeDate, но у меня проблемы с преобразованием. В time.h, как бы я конвертировать time_t (в секундах с 1.1.1970), в текущей локальной временной зоне (компенсируя летнее время, если это применимо), так что:time_t формат преобразования вопрос
time_t Seconds;
Становится:
struct TimeDate
{
short YYYY;
unsigned char MM;
unsigned char DD;
unsigned char HH; //Non-DST, non-timezone, IE UTC (user has to add DST and TZO to get what they need)
unsigned char MM;
unsigned char S;
char TZ[4]; //This can be optionally a larger array, null terminated preferably
char TZO; //Timezone Offset from UTC
char DST; //Positive is DST (and amount of DST to apply), 0 is none, negative is unknown/error
};
Без использования строковых литералов (строка для названия часового пояса) в процессе (чтобы сохранить его эффективность)? Это также учитывает високосные годы. Бонус, если TimeDate можно преобразовать обратно в time_t.
Привет, pax, смотря на местное время, он помещается в структуру tm, из которых дни/часы/минуты ... с 01.01.1970. Проблема с этим заключается в том, что я не хочу, сколько часов прошло с 01.01.1970 года, я хочу, каково настоящее время (в формате UTC с разделением DST/Timezone). Он также не обеспечивает использование часового пояса или количество часов, на которые смещается часовой пояс. – SSight3
@ SSight3: Я думаю, вы хотите снова прочитать это описание. – Nemo
Привет, nemo, он изменил описание с момента моего комментария, но он по-прежнему не затрагивает мой вопрос, каким образом я могу преобразовать time_t в структуру TimeDate, IE как я конвертирую в TimeDate, как известно, отсутствует (парафраз: как конвертировать tm в TimeDate). Также обратите внимание на вопрос о часовом поясе/високосных годах. – SSight3