使用本地时间的make-timestamp宏

时间:2014-03-18 21:07:46

标签: date macros common-lisp

我是Common Lisp的初学者,我目前正在试用这个包local-time

我尝试使用创建make-timestamp实例的timestamp宏创建日期。我咨询了local-time manual,但我不明白我必须提供哪些论据。

宏的描述如下:

  

- Macro:make-timestamp& key:day:sec:nsec

     

扩展为一个表达式,该表达式完全按照指定创建时间戳的实例。

只需使用没有任何参数的宏就可以实现:

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-03-01以后的日期和日期?

还有一个名为encode-timestamp的功能似乎完全符合我的要求(即:通过提供月,日,年,小时,分钟等日期信息来创建日期):

LOCAL-TIME> (encode-timestamp 0 0 30 10 13 5 2009)
@2009-05-13T10:30:00.000000+02:00

但是,make-timestamp宏应该做什么?

1 个答案:

答案 0 :(得分:2)

Make-timestamp由多个编码函数使用,包括encode-timestamp。我认为它相当低级,但它可能是图书馆用户感兴趣的。

Encode-timestamp似乎只是你想要的功能。