2010-05-25 17 views
5

Ich verstehe Emacs Lisp ist ideal für die Behandlung von Daten und Zeiten, aber hat es eine Funktion zum Konvertieren von Zeichenfolgen in interne Darstellung von Ganzzahlen mit Formaten wie %Y, %m, %d, %H, %M, %S, und so weiter? Und im Emacs-Referenzhandbuch heißt es, dass Zeiten Listen von zwei oder drei ganzen Zahlen sind, aber gibt es eine formellere Spezifikation oder Beschreibung? ~ Dank ~Daten und Zeiten in Emacs Lisp

bearbeiten: Danke für die Antworten - aber ich denke, frage mich, ob es eine Funktion war, die Format-Zeit-String in umgekehrter tut (wie parse-time-string aber mit Struktur Spezifikationen für die Eingabezeichenfolge)?

Edit2: Ich denke, die Antwort ist, dass nichts eingebaut ist ... aber eine teilweise Implementierung wurde implementiert here.

+0

Ich habe gerade versucht strptime.el und es funktioniert nicht einmal für die "Manual testing" Beispiele in der Datei gegeben; scheinbar ersetzt in-string ist nicht mehr in emacs. Schade, ich suche nach der gleichen Funktionalität. – Liam

+0

Funktioniert es, wenn Sie einen Alias ​​erstellen '(defalias 'replace-in-string' replace-regex-in-string)'? – hatmatrix

Antwort

2

Die Zeit wird von den meisten zeitbezogenen Funktionen als Liste von drei ganzen Zahlen zurückgegeben. Der erste hat die höchstwertigen 16 Bits der Sekunden, während der zweite die am wenigsten signifikanten 16 Bits hat. Die dritte ganze Zahl gibt die Mikrosekundenzählung an.

Die Mikrosekundenzahl ist Null auf Systemen, die Auflösung nicht feiner als eine Sekunde bieten.

Für den Rest Ihrer Frage einen Blick auf this section des Handbuchs, falls Sie es verpasst haben.

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

Die interne Darstellung kann sich ändern; Ich denke, es wäre besser, die mitgelieferte dokumentierte API (Encoder-Zeit, Dekodierzeit usw.) zu verwenden, um darauf zuzugreifen.