2013-12-06 3 views
2

При попытке форматирования длительности Emacs возвращает неожиданные значения для часа. Здесь я печатаю длину нулевой длины.Почему формат времени-времени Emacs возвращает значение, отличное от полуночи, при заданной длине нулевой длины?

(format-time-string "%H:%M:%S" (seconds-to-time 0)) 

19:00:00. Почему это не 00:00:00?

ответ

3

Это из-за часовых поясов. Из format-time-string документации:

Третий, необязательный, аргумент UNIVERSAL, если не-ноль, значит описать ВРЕМЯ , как Universal Time; nil означает описание TIME в локальном часовом поясе.

Emacs рассматривает это как 00:00:00 UTC, но не выполняет преобразование его в локальное время. Для того, чтобы не конвертировать в местное время, передать значение не-ноль в качестве универсального аргумента:

(format-time-string "%H:%M:%S" (seconds-to-time 0) t) 

возвращается 00:00:00

Смежные вопросы