Skip to content

Instantly share code, notes, and snippets.

@shibukawa

shibukawa/parse_date.rst

Last active Mar 3, 2017
Embed
What would you like to do?
いけてる日付パース関数の仕様

日付パース関数仕様

参考コード

agoによる相対時間指定

  • 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にする

@michilu

This comment has been minimized.

Copy link

@michilu michilu commented Jul 19, 2015

実生活だと西暦年が2桁の表記(DD-MM-YY)も割と見かけます。

@michilu

This comment has been minimized.

Copy link

@michilu michilu commented Jul 19, 2015

a few seconds ago
a minute ago
an hour ago
a month ago
a year ago
も、よくあります。

@ymotongpoo

This comment has been minimized.

Copy link

@ymotongpoo ymotongpoo commented Jul 19, 2015

とりあえずgitで使われてるやつをサポートするところから

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment