2010-05-25 15 views
5

Capisco che emacs lisp è ottimo per gestire date e orari, ma ha una funzione per convertire stringhe in rappresentazione interna di numeri interi usando formati come %Y, %m, %d, %H, %M, %S, e così via? Inoltre, nel manuale di riferimento di emacs, si dice che i tempi sono elenchi di due o tre numeri interi, ma esiste una specifica o una descrizione più formale? ~ ~ GrazieDate e orari in Emacs Lisp

Edit: Grazie per le risposte - ma immagino che mi chiedevo se ci fosse una funzione che fa format-tempo-string in senso inverso (come parse-time-string ma con specifiche di struttura per la stringa di input)?

Edit2: Credo che la risposta sia che non è stato creato nulla ... ma un'implementazione parziale è stata implementata here.

+0

Ho appena provato strptime.el e non funziona nemmeno per gli esempi di "Test manuale" dati nel file; apparentemente replace-in-string non è più in emacs. Peccato, sto cercando la stessa funzionalità. – Liam

+0

Funziona se si crea un alias '(defalias 'replace-in-string' replace-regex-in-string)'? – hatmatrix

risposta

2

L'ora viene restituita dalla maggior parte delle funzioni relative al tempo come un elenco di tre numeri interi. Il primo ha i 16 bit più significativi del , mentre il secondo ha i 16 bit meno significativi del . Il terzo numero intero dà il conteggio del microsecondo .

Il conteggio del microsecondo è zero su sistemi che non forniscono una risoluzione di inferiore a un secondo.

Come per il resto della tua domanda dai un'occhiata a this section del manuale nel caso in cui lo avessi perso.

2
(defun encode-time-string (string) 
    (apply #'encode-time (parse-time-string string))) 

La rappresentazione interna può cambiare; Penso che sarebbe meglio usare l'API documentata fornita (tempo di codifica, tempo di decodifica, ecc.) Per accedervi.