date - 本地时间的 make-timestamp 宏的使用

标签 date macros common-lisp

我是 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/

相关文章:

javascript - 使用 new Date() Javascript 生成错误的日期

c - __insn_seqb() 和 __insn_ctz 是什么意思?

python - 你可以用 Lisp 宏做什么,而一流的函数却做不到?

lisp - 如何从嵌套列表 lisp 中删除元素

lisp - 如何从 CL REPL 获取函数/宏定义?

macros - 宏扩展到相同的运算符

javascript - AngularJS 指令从 templateUrl 检索模板时出现问题

python - 值错误 : time data does not match format when parsing a date

java - 字符串中的 OffsetDateTime Z

c - 扩展 C 宏的类型