我在Common Lisp(SBCL)中編寫了一個簡單的網頁掃描器作爲學習練習,&想按日期排序。爲此,我需要將格式爲「MM/DD/YYYY」的日期解析爲世界時。打包解析Common Lisp中的日期?
我可以簡單地標記字符串&將這些位傳遞給encode-universal-time
,但我認爲必須有用於日期分析的內置函數(或常用的第三方包)。我非常感謝有人推薦一個:-)
我在Common Lisp(SBCL)中編寫了一個簡單的網頁掃描器作爲學習練習,&想按日期排序。爲此,我需要將格式爲「MM/DD/YYYY」的日期解析爲世界時。打包解析Common Lisp中的日期?
我可以簡單地標記字符串&將這些位傳遞給encode-universal-time
,但我認爲必須有用於日期分析的內置函數(或常用的第三方包)。我非常感謝有人推薦一個:-)
你可以試試net-telent-date,它有PARSE-TIME
我認爲它會做你想做的。
另外Common Lisp Directory有一個庫的列表,其中幾個聲明處理日期。
查看Common Lisp的net-telent-date和simple-date-time庫。前者有一個你可以使用的parse-time
函數(參見parse-time.lisp)。兩者都包含在QuickLisp圖書館藏書中。
許多實現都有一個UNIX接口,在相同的情況下,這包括strptime函數。
Antik處理日期和時間,幷包括日期/時間分析器。結果是一個「時間點」,默認情況下是UTC(CL的「通用時間」有些不同,但可以轉換爲該時間點)。
這個答案很晚,但local-time函數庫是有特色的,被廣泛使用。它基於文章The long painful history of time。
它supports:
是的,但它不支持解析日期的字符串表示形式 – hijarian 2015-12-12 07:41:31
@hijarian我已經使用包cl-date-time-parser來做到這一點,它可以採取各種常見的表示形式,並將它們轉換爲通用時間秒整數表示形式。 – 2016-04-22 17:09:56
@hijarian它取決於字符串表示形式。例如,雖然'(local-time:parse-timestring「2009/06/02「)'有問題,本地時間解析可以與其他字符串格式一起使用 - 例如'(local-time:parse-timestring」2009-06-02「)'。 – dat 2017-02-17 07:17:16
有趣的切線:我發現一個庫有一個網站的評論「fixme:不解析yyyymmddTHHMMSS Z神是該死的一切。需要大修「,所以我想我會跳過那一個;-) – 2011-05-02 07:29:19