#:g1: cl-date-time-parserの紹介

Posted 2014-03-17 15:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の77日目です。

cl-date-time-parserとはなにか

 cl-date-time-parserは、Takaya OCHIAI氏作の日付文字列をパーズするライブラリです。

パッケージ情報

パッケージ名cl-date-time-parser
Quicklisp
参考サイト
CLiKihttp://cliki.net/cl-date-time-parser
Quickdocshttp://quickdocs.org/cl-date-time-parser

インストール方法

(ql:quickload :cl-date-time-parser)

試してみる

 どんな関数があるかは、Quickdocsで確認できます。

 ドキュメントによれば、RFC822系、ISO8601系の形式に対応しているとのこと

(map nil
     (lambda (d)
       (format T "~A~42T=> ~A~%"
               d
               (*:when-let (ut (ignore-errors 
                                 (date-time-parser:parse-date-time d)))
              (*:date-string ut))))
     '("Thu, 23 Jul 2013 19:42:23 GMT"
       "Thu Jul 23 19:42:23 2013"
       "Thursday, 23-Jul-13 19:42:23 GMT"
       "2013-07-23T19:42:23Z"
       "20130723T194223Z"
       "Thu, 23 Jul 2013 19:42:23 JST"
       "2013-07-23T19:42:23+09:00"
       "23 Jul 13 19:42:23 +0900"
       "Thu Jul 23 19:42:23 JST 2013"
       "2013-07-23T19:42:23.45Z"
       "2013-01-01"
       "2013"
       "1 Jan 13"
       "2003-12-31T25:14:55Z"
       "2004-01-01T01:14:55Z"
       "2003-12-31T10:61:55Z"
       "2003-12-31T11:01:55Z"
       "2003-12-31T10:14:61Z"
       "2003-12-31T10:15:01Z"
       ";3-12-31T10:15:01Z"
       "2013-12-31T10:15:01Z"))
;>>  Thu, 23 Jul 2013 19:42:23 GMT             => Wed 24 Jul 2013 04:42:23
;>>  Thu Jul 23 19:42:23 2013                  => Wed 24 Jul 2013 04:42:23
;>>  Thursday, 23-Jul-13 19:42:23 GMT          => Wed 24 Jul 2013 04:42:23
;>>  2013-07-23T19:42:23Z                      => Wed 24 Jul 2013 04:42:23
;>>  20130723T194223Z                          => Wed 24 Jul 2013 04:42:23
;>>  Thu, 23 Jul 2013 19:42:23 JST             => Tue 23 Jul 2013 19:42:23
;>>  2013-07-23T19:42:23+09:00                 => Tue 23 Jul 2013 19:42:23
;>>  23 Jul 13 19:42:23 +0900                  => Tue 23 Jul 2013 19:42:23
;>>  Thu Jul 23 19:42:23 JST 2013              => Tue 23 Jul 2013 19:42:23
;>>  2013-07-23T19:42:23.45Z                   => Wed 24 Jul 2013 04:42:23
;>>  2013-01-01                                => Tue 1 Jan 2013 09:00:00
;>>  2013                                      => Tue 1 Jan 2013 09:00:00
;>>  1 Jan 13                                  => Tue 1 Jan 2013 09:00:00
;>>  2003-12-31T25:14:55Z                      => Thu 1 Jan 2004 10:14:55
;>>  2004-01-01T01:14:55Z                      => Thu 1 Jan 2004 10:14:55
;>>  2003-12-31T10:61:55Z                      => Wed 31 Dec 2003 20:01:55
;>>  2003-12-31T11:01:55Z                      => Wed 31 Dec 2003 20:01:55
;>>  2003-12-31T10:14:61Z                      => Wed 31 Dec 2003 19:15:01
;>>  2003-12-31T10:15:01Z                      => Wed 31 Dec 2003 19:15:01
;>>  ;3-12-31T10:15:01Z                        => Tue 31 Dec 2013 19:15:01
;>>  2013-12-31T10:15:01Z                      => Tue 31 Dec 2013 19:15:01
;>>  
;=>  NIL

こんな感じで利用できます。

まとめ

 今回は、cl-date-time-parserを紹介してみました。
日頃使う形式に関しては、このライブラリで間に合いそうです。

comments powered by Disqus