- BSD: http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libutil/parsedate.y?rev=1.20&content-type=text/x-cvsweb-markup&only_with_tag=MAIN
- MIT: http://git.eclipse.org/c/jgit/jgit.git/tree/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/GitDateParserTest.java
- MIT: http://git.eclipse.org/c/jgit/jgit.git/tree/org.eclipse.jgit/src/org/eclipse/jgit/util/GitDateParser.java
- 2 seconds ago
- 3 minutes ago
- 4 hours ago
- 5 days ago
- 1 week ago
- 2 months ago
- 1 year, 3 months ago
- 1.year.4.months.ago
- 2.years.ago
単語の区切りはスペースでも、ピリオドでも良い。数値+単位の区切り(上記の1 yearと3 months)の区切りはカンマ+スペースでも良い。現在の時間からの比較で、時間を取得する。
複数形だとsが後ろに付く。
- now
- today
- yesterday
- last friday
日付だけ指定された時は、nowとtodayは同じ。時・分・秒はnowの値が補完されて設定される。
- noon yesterday
- tea yesterday
- midnight today
- 3pm today
- 2am last friday
- 19:00 yesterday
- 10am
相対日付+時間。この場合は分・秒は指定されなければ00:00になる。todayなどの日付の相対指定がひとつも指定されなければ、todayが指定されたものとする(最後の項目)
- August 6th
- 06/05/2009
- 06.05.2009
- Feb 28, 4AM
- 2AM Jun 4
- 6AM, June 7, 2009
- 2008-12-01
年が省略されたら今年の年が補完される。時/分/秒がすべて省略されたら、nowの値が補完される。時が設定されて分・秒が省略されたら、00:00が、時・分が設定されて秒が省略されたら00が補完される
並びは月→日、月→日→時間、時間→月→日、月→日→年、年→月→日、時間→月→日→年、年→月→日→時間を許容する
書く項目の区切りは、スペース、スラッシュ、ピリオド、ハイフン、カンマ+スペースが使える
月を英語表記するときは短い名前でも長い名前でも良い
月・日が一桁のときは先頭に0を書いても良いし、書かなくても良い。
以下のパターンはエラーにする
- 2015 (年だけ)
- 2014-08 (年月だけ)
有効なもの
- 2012-01-04 20:30:45 -05:00
- 2012-01-04 20:30:45 -05
- 2013-02-04 20:30:45 +1100
無効なもの
- 2014-04-03 20:30:45 -:30
- 2014-04-03 20:30:45 -05:
- 2014-04-03 20:30:45 5
タイムゾーンは符号+4桁(区切りのコロンは任意)で省略時は今いるローカルなタイムゾーンが設定されたものとする。省略形で、符号+二桁もあり。
ゼロのときは+0000にする。無効なタイムゾーンも+0000にする
実生活だと西暦年が2桁の表記(DD-MM-YY)も割と見かけます。