|
time.h ARMCC |
|
|
|
Dec 5 2016, 06:49
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Здравствуйте! Как учитывается временная зона в стандартной библиотеке времени time.h? Все что нашел в файле time.h - упоминание в функции strftime() Цитата %Z is replaced by the timezone name or abbreviation, or by no characters if no time zone is determinable. Попробовал все, что можно вывести, выводит все, кроме временной зоны: Цитата time_t rawtime = 1480685759; // Fri, 02 Dec 2016 13:35:59 GMT struct tm * timeinfo; timeinfo = (struct tm*)localtime(&rawtime); // Convert time_t to tm as UTC time char buffer [80];
strftime (buffer,80,"%I:%M%p",timeinfo); puts (buffer); // 01:35PM
strftime (buffer,80,"%H:%M:%S%p",timeinfo); puts (buffer); // 13:35:59PM
strftime (buffer,80,"%H:%M:%S",timeinfo); puts (buffer); // 13:35:59
strftime (buffer,80,"%d.%m.%y",timeinfo); puts (buffer); // 02.12.16
strftime (buffer,80,"%a_%A",timeinfo); puts (buffer); // Fri_Friday
strftime (buffer,80,"%b_%B",timeinfo); puts (buffer); // Dec_December
strftime (buffer,80,"%c",timeinfo); puts (buffer); // 02 Dec 2016 13:35:59
strftime (buffer,80,"%j",timeinfo); puts (buffer); // 337 (day of the year as a decimal number (001-366))
strftime (buffer,80,"%W",timeinfo); puts (buffer); // 48 (the week number of the year (Monday as the first day))
strftime (buffer,80,"%x",timeinfo); puts (buffer); // 02 Dec 2016
strftime (buffer,80,"%X",timeinfo); puts (buffer); // 13:35:59
strftime (buffer,80,"%y",timeinfo); puts (buffer); // 16 (year without century).
strftime (buffer,80,"%Y",timeinfo); puts (buffer); // 2016 (year with century)
strftime (buffer,80,"%Z",timeinfo); puts (buffer); // ??? Не знаю, как её задавать. Ведь с систем синхронизации будет время UTC+0, а у меня локальное UTC+3. Т.е. где-то должна быть временная зона. Посмотрел у других - для PIC24 (компилятор XC16) в файле time.h есть переменная time_zone: Код extern int time_zone; /* minutes WESTWARD of Greenwich */ /* this value defaults to 0 since with operating systems like MS-DOS there is no time zone information available */
Сообщение отредактировал Pridnya - Dec 5 2016, 06:52
|
|
|
|
|
 |
Ответов
|
Jan 24 2017, 12:13
|
Местный
  
Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682

|
Цитата(jcxz @ Jan 23 2017, 20:00)  По памяти: у нас были следующие варианты задания в конфиге диапазона летнего времени: 1.Фиксированное число/месяц. 2.Последняя суббота N-го месяца. 3.Первая суббота N-го месяца (хотя уже не помню - возможно можно было выбрать номер субботы определённого месяца). Всё учитывали. И перевод может быть на не целое число часов (полчаса например). Добавлю, тоже по памяти, там еще был флажок полушария: северное или южное. Цитата(Ruslan1 @ Jan 23 2017, 21:52)  Интересный вопрос- конфигуратор, в какой форме-формате задавать величины как задать так чтобы покрыть все хотелки, не тупик в развитии, и при этом чтоб простой парсинг был. Я конфигуратор вставлял в стандартном формате, только миллисекунды перевел в секунды. Ну и пренебрег случаем, когда все переводы вставляются для каждого года индивидуально ради экономии. А парсинг там совершенно простой для любого случая - просто взял соответствующий копи-паст из линукса.
Сообщение отредактировал aiwa - Jan 24 2017, 12:14
|
|
|
|
|
Jan 24 2017, 12:20
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(aiwa @ Jan 24 2017, 14:03)  Добавлю, тоже по памяти, там еще был флажок полушария: северное или южное. мне кажется, что это лишняя сущность. И что указать в экваториальных странах, которые и в том и в этом? (Свят-свят! не хотел бы я там что-нить ставить  ) Для вычисления достаточно просто честно проверять даты начала и конца указанной зоны при условии что событие не чаще раза в год, а не смотреть на начало-конец года. в-общем, проникся я как tzset() работает, красиво. В будущем- нужно просто переменную TZ честно поддерживать, к чему и буду стремиться. Не нужно в этой области велосипедов, все уже придумано до для нас. Но сейчас сделаю еще более простую реализацию, чтоб не менять уже давно написанное в данном проекте.
|
|
|
|
Сообщений в этой теме
Pridnya time.h ARMCC Dec 5 2016, 06:49 KnightIgor Цитата(Pridnya @ Dec 5 2016, 08:49)
Уже ... Dec 5 2016, 08:58 Pridnya Цитата(KnightIgor @ Dec 5 2016, 11:58) Уж... Dec 5 2016, 09:15 esaulenka Вбил в поиск по хелпу кейла слово "timezone... Dec 5 2016, 14:13 Pridnya Цитата(esaulenka @ Dec 5 2016, 17:13) Вби... Dec 5 2016, 19:06  Alechek Цитата(Pridnya @ Dec 6 2016, 00:06) Получ... Dec 6 2016, 04:14   Pridnya Цитата(Alechek @ Dec 6 2016, 07:14) А Вы ... Dec 6 2016, 05:49 SasaVitebsk Я полностью написал свою библиотеку. Там мизер, по... Dec 6 2016, 09:04 Pridnya Цитата(SasaVitebsk @ Dec 6 2016, 12:04) Я... Dec 6 2016, 10:53 SasaVitebsk Я написал "типа этого". Специально прове... Dec 6 2016, 11:24 Pridnya Цитата(SasaVitebsk @ Dec 6 2016, 14:24) Я... Dec 6 2016, 11:50  Lagman Цитата(Pridnya @ Dec 6 2016, 14:50) Я скр... Dec 6 2016, 12:42   Pridnya Цитата(Lagman @ Dec 6 2016, 15:42) У вас ... Dec 6 2016, 19:12    Ruslan1 Извините, то есть стандартизированного и документи... Jan 23 2017, 17:30     jcxz Цитата(Ruslan1 @ Jan 23 2017, 20:30) А ещ... Jan 23 2017, 18:00      Ruslan1 jcxz, спасибо!
тоже думаю про похожее, так как... Jan 23 2017, 19:52     SasaVitebsk Цитата(Ruslan1 @ Jan 23 2017, 20:30) Ну х... Jan 24 2017, 10:44   Сергей Борщ QUOTE (KnightIgor @ Jan 25 2017, 19:44) Х... Jan 25 2017, 17:55    Ruslan1 Цитата(Сергей Борщ @ Jan 25 2017, 19:55) ... Jan 25 2017, 19:00 jcxz Цитата(aiwa @ Jan 24 2017, 15:13) Добавлю... Jan 24 2017, 13:04 aiwa Цитата(Ruslan1 @ Jan 24 2017, 14:20) мне ... Jan 24 2017, 12:26 aiwa Цитата(jcxz @ Jan 24 2017, 15:04) Не помн... Jan 24 2017, 13:37
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|