我在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