我是 Common Lisp 的初学者,目前正在尝试该包 local-time .
我正在尝试使用 make-timestamp
宏创建一个日期,该宏创建 timestamp
的实例。我咨询了local-time manual ,但我不明白我必须提供哪些论据。
该宏的说明如下:
— Macro: make-timestamp &key :day :sec :nsec
Expands to an expression that creates an instance of a timestamp exactly as specified.
只需使用不带任何参数的宏即可实现此目的:
LOCAL-TIME> (make-timestamp)
@2000-03-01T01:00:00.000000+01:00
2000-03-01 是这里的标准纪元,所以到目前为止看起来还不错。
将 :day 3
作为参数传递给我:
LOCAL-TIME> (make-timestamp :day 3)
@2000-03-04T01:00:00.000000+01:00
好的。但是我怎样才能从中构建一个日期,而不必计算从 2000 年 3 月 1 日起的 future 日子呢?
还有一个名为 encode-timestamp
的函数,它似乎完全符合我的要求(即:通过提供日、月、年、小时、分钟等信息来创建日期等等):
LOCAL-TIME> (encode-timestamp 0 0 30 10 13 5 2009)
@2009-05-13T10:30:00.000000+02:00
但是,make-timestamp
宏应该做什么?
最佳答案
Make-timestamp
由多个编码函数使用,包括 encode-timestamp
。我认为它相当低级,但库的用户可能会感兴趣。
Encode-timestamp
似乎正是您想要的功能。
关于date - 本地时间的 make-timestamp 宏的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22491083/