Здравствуйте, 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) и гарантирует отсутствие хитрых эффектов от переключения зон.