我是Common Lisp的初學者,目前我正在試用包local-time。本地時間製作時間戳宏的使用
我試圖用make-timestamp
宏創建一個日期,該宏創建了一個timestamp
的實例。我諮詢了local-time manual,但我不明白我必須提供哪些論點。
宏的描述如下:
- 宏:使時間戳&鍵:日:秒:納秒
擴展爲恰好創建時間戳的實例作爲表達指定。
只要宏觀不帶任何參數,使這種情況發生:
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
?
'#'make-timestamp'沒有意義。 '#''是函數的前綴。該宏被稱爲「make-timestamp」。 –
'make-timestamp'只是''make-instance'timestamp ...'上的句法糖'' –
具體而言,'#'make-timestamp'是'(function make-timestamp)',並且「在表示宏或特殊形式的符號上使用函數「。請參見http://www.lispworks.com/documentation/HyperSpec/Body/s_fn.htm –