2013-05-06 63 views
2

我想出了在看文檔最接近的事是如何將SQL-timestamp轉換爲球拍中的字符串?

(define (sql-datetime->rfc2822 datetime) 
    (let ([dt (sql-datetime->srfi-date datetime)]) 
    (date->string dt (date-display-format 'rfc2822)))) 

但是,當我將它傳遞失敗一個sql-timestamp

> (sql-datetime->rfc2822 st) 
. . date->string: contract violation 
expected: date? 
given: (tm:date 456232000 10 39 18 5 5 2013 0) 
in: the 1st argument of 
     (->* (date?) (any/c) string?) 
contract from: <collects>/racket/date.rkt 

回答

2

此前球拍版本5.3.4,您需要使用由於racket/datesrfi/19的結構類型是不兼容的(在5.3.4中,它將很快發佈,它們使用相同的結構),因此date->string函數來自srfi/19庫。如果你使用(require srfi/19)並且使用那裏定義的API,它應該可以工作。