Даты и время в Emacs Lisp - PullRequest
5 голосов
/ 25 мая 2010

Я понимаю, что emacs lisp отлично подходит для обработки дат и времени, но есть ли у него функция для преобразования строк во внутреннее представление целых чисел с использованием таких форматов, как %Y, %m, %d, %H, %M, %S, и так далее? Кроме того, в справочном руководстве по emacs говорится, что времена - это списки из двух или трех целых чисел, но есть ли более формальная спецификация или описание? ~ Спасибо ~

Редактировать : Спасибо за ответы - но думаю, мне было интересно, была ли функция, которая выполняет форматирование строки времени в обратном порядке (например, parse-time-string, но со спецификациями структуры для входной строки)?

Edit2 : Я полагаю, что ответ заключается в том, что ничего не встроено ... но здесь была реализована частичная реализация .

Ответы [ 2 ]

2 голосов
/ 25 мая 2010
(defun encode-time-string (string)
  (apply #'encode-time (parse-time-string string)))

Внутреннее представление может измениться; Я думаю, что было бы лучше использовать предоставленный документированный API (время кодирования, время декодирования и т. Д.) Для доступа к нему.

2 голосов
/ 25 мая 2010

Время возвращается большинством связанных с временем функций в виде списка из трех целых чисел. Первый имеет старшие 16 бит секунд, в то время как второй имеет младший 16 бит. Третье целое число дает микросекунду сосчитать.

Счетчик микросекунд равен нулю в системах, которые не обеспечивают разрешение меньше секунды.

Что касается остальной части вашего вопроса, посмотрите этот раздел руководства, если вы его пропустили.

...