Re[3]: Временные зоны
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 19.12.11 07:56
Оценка:
Здравствуйте, citrin, Вы писали:

C>>1. Выставляете переменную окружения TZ=UTC

C>>2. Переводите дату в unix timestamp — strptime()
C>>3. Выставляете переменную окружения, например TZ=Asia/Vladivostok
C>>4. Печатаете время — strftime()

C>Глянул маны — делать нужно немного не так:


C>1. strptime(): string -> struct tm

C>2. setenv TZ=UTC, tzset()
C>3. mktime(): struct tm -> unix timestamp;
C>4. setenv TZ=Asia/Vladivostok, tzset()
C>5. localtime(): unix timestamp -> struct tm
C>6. strftime(): struct tm -> string

Угу, но я бы рекомендовал делать эти игры в отдельном процессе, который завершается сразу по получению результата. Это достаточно дёшево (если fork без exec) и гарантирует отсутствие хитрых эффектов от переключения зон.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.