Biçimlendirilmiş zaman dizesini ayrıştırma (biçim-zaman-dizesinin tersi)


10

format-time-stringFonksiyon gibi bir zaman argüman alır '(21761 64499 350937 0)ve böyle bir biçim dizesi "%y-%m-%d %a %H:%M"ve böyle bir şey döndürür "15-03-12 Thu 16:49".

Ters fonksiyon, sürer nedir "15-03-12 Thu 16:49"ve "%y-%m-%d %a %H:%M"ve döner '(21761 64499 350937 0)?

Onları org modu zaman damgalarına dönüştürmek için web sitesinden ayrıştırmaya çalışıyorum, ancak emacs belgelerinde doğru işlevi bulmakta sorun yaşıyorum.

Düzenle Bunu yorumumdan erikstoke'un cevabına yükseltiyorum. parse-time-stringve org-parse-time-stringçoğu standart zaman dizesini ayrıştırırken belirli biçimlere izin vermedikleri için yetersizdir. Her iki işlev de oldukça kapsamlı. Özellikle, ISO8601 desteğinden yoksundurlar .

Yanıtlar:


4

parse-time-string"standart" zaman dizelerini ayrıştırır org-parse-time-string. Belgeler, ikincisinin daha hızlı olacağını iddia ediyor. Her ikisi de dizenin biçimini belirtmenin bir yolunu vermez.

parse-iso8601-time-stringISO8601'i bir şeye ayıran belgelenmemiş bir işlev de vardır . Çıktının ne olması gerektiği bana açık değil.


Gerçekten, bunları kontrol ettim. Hatta ISO8601 ile beslendiğinde "Geçersiz zaman özelliği" döndürüyorlar, bu yüzden hala bakıyorum.
Matthew Piziak

(parse-time-string (current-time-string))burada çalışıyor.
wasamasa

Bunu iddia eden bir fonksiyon var, ama çıktının ne anlama geldiğini anlamıyorum. Cevabımın içinde düzenledim.
erikstokes

2

Benzer bir durum vardı ama kutunun dışında çalışan hiçbir şey bulamadım. Ancak org-time-stampher türlü formatı işlediğinden, kodun orada olduğunu düşündüm. Aşağıdaki işlev, sağlanan bir zaman dizesinden bir kuruluş zaman damgası ekler. Her türlü test etmedim, ama "15-03-12 Thu 16:49"verecek "[2015-03-12 tor 16:49]". ( "tor"Perşembe benim yerimde).

Biçim dizesini sağlamanın bir yolu olmadığından, bu cevap soruyla tam olarak eşleşmiyor, ancak umarım yine de işe yarayacaktır. Kuruluş-zaman damgasının işlediği tüm formatları anlamalıdır.

(defun jk-org-insert-time-stamp (time-string)
  (interactive "sTime: ")
  (let ((default-time (apply 'encode-time (decode-time))))
    (org-insert-time-stamp
     (apply 'encode-time (org-read-date-analyze time-string default-time default-time)) t t)))

bu soruya cevap vermiyor. Soru, how can I parse a string with a specified format? Bu işlev belirtilen biçime sahip bir zaman çizelgesi ekler.
Cheeso
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.