書式設定された時間文字列の解析(format-time-stringの逆)


10

format-time-string機能は次のようにtime引数取り'(21761 64499 350937 0)などのフォーマット文字列を"%y-%m-%d %a %H:%M"とのようなものを返します"15-03-12 Thu 16:49"

"15-03-12 Thu 16:49"and を取り"%y-%m-%d %a %H:%M"、返す逆関数は何'(21761 64499 350937 0)ですか?

私はWebサイトの時間を解析して組織モードのタイムスタンプに変換しようとしていますが、emacsドキュメントで適切な関数を見つけるのに苦労しています。

編集私のコメントからエリクストークの答えまでこれを宣伝しています。parse-time-stringまた、org-parse-time-string多くの標準時間文字列を解析する一方で、指定された形式を許可しないため、不十分です。どちらの機能もかなり包括的です。特に、ISO8601のサポートが不足しています。

回答:


4

parse-time-stringが行うように、「標準」時間文字列を解析しorg-parse-time-stringます。ドキュメントは後者がより高速になると主張しています。どちらも、文字列の形式を指定する方法を提供しません。

parse-iso8601-time-stringISO8601を何かに解析する文書化されていない関数もあります。出力がどうなっているのか私にはわかりません。


実際、私はそれらをチェックアウトしました。ISO8601が供給されると、 "無効な時間指定"も返されます。そのため、私はまだ探しています。
マシューピジアック2015年

(parse-time-string (current-time-string))ここで動作します。
wasamasa 2015

これを行うと主張する関数がありますが、出力の意味がわかりません。私はそれを私の答えに編集しました。
erikstokes 2015年

2

私も同じような状況でしたが、そのままでは何も機能しませんでした。しかし、org-time-stampすべての種類のフォーマットを処理するので、コードはそこにあると考えました。以下の関数は、提供された時間文字列から組織のタイムスタンプを挿入します。私はそれをすべての種類についてテストしたわけではありませんが、"15-03-12 Thu 16:49"それは与えるでしょう"[2015-03-12 tor 16:49]"。("tor"私のロケールでは木曜日です)。

したがって、フォーマットストリングを提供する方法がないため、この回答は質問と完全には一致しませんが、うまくいけばうまくいくでしょう。org-time-stampが処理するすべての形式を理解する必要があります。

(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)))

これは質問に答えません。問題は、how can I parse a string with a specified format? この関数は指定された形式でタイムストリングを挿入することでした。
Cheeso 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.