When.strptime などの追加
外部ファイルを読み込んで暦情報を抽出するために
標題の類の機能を追加しました[1]。
require 'date'
require 'when_exe'
include When
・When.strptime
strptime は DateTime.strptime を呼びますので
require 'date' が必要です。
p strptime('1950 Aug', '%Y %B')
#=> 1950-08
p strptime('1950 Aug 31', '%Y %B %d')
#=> 1950-08-31
p strptime('Tue Jan 6 9:18:24 +09:00 2015', '%A %B %d %H:%M:%S %z %Y')
#=> 2015-01-06T09:18:24+09:00
p strptime('木 1月 6 9:18:24 JST 2015', '%A %B %d %H:%M:%S %z %Y', :locale=>'ja')
#=> 2015-01-08T09:18:24+09:00, 矛盾がある場合 strptimeは「年」を優先します。
p strptime('Thu Jan 6 9:18:24 +09:00 2015', '%A %B %d %H:%M:%S %z %Y', :invalid=>:raise)
#=> ArgumentError, 矛盾がある場合例外を投げるようにもできます。
・When.when?
p when?('1950 Aug 31', :parse=>'%Y %B %d')
#=> 1950-08-31
p when?('Thu Jan 6 9:18:24 JST 2015', :parse=>'%A %B %d %H:%M:%S %z %Y')
#=> 2022-01-06T09:18:24+09:00, 矛盾がある場合 when?は「月日」を優先します。
p when?('木 1月 6 9:18:24 JST', :abbr=>2015, :parse=>['%A %B %d %H:%M:%S %z', 'ja'])
#=> 2022-01-06T09:18:24+09:00
p when?('昭和十五年十一月廿日', :parse=>Locale::JapaneseParser)
#=> 昭和15(1940).11.20
p when?('昭和甲子年11月甲子', :parse=>Locale::JapaneseParser)
#=> 昭和59(1984).11.26
p when?('明治元年閏4月甲寅12時6分3秒+09:00', :parse=>Locale::JapaneseParser)
#=> 明治01(1868).04=07T12:06:03+09:00
日本語ローケールでの月名(1月など)は省略名とみなしてパースします。
[1] 例によって GitHub は更新しましたが、gem の更新は
次回バージョンアップ時です。
標題の類の機能を追加しました[1]。
require 'date'
require 'when_exe'
include When
・When.strptime
strptime は DateTime.strptime を呼びますので
require 'date' が必要です。
p strptime('1950 Aug', '%Y %B')
#=> 1950-08
p strptime('1950 Aug 31', '%Y %B %d')
#=> 1950-08-31
p strptime('Tue Jan 6 9:18:24 +09:00 2015', '%A %B %d %H:%M:%S %z %Y')
#=> 2015-01-06T09:18:24+09:00
p strptime('木 1月 6 9:18:24 JST 2015', '%A %B %d %H:%M:%S %z %Y', :locale=>'ja')
#=> 2015-01-08T09:18:24+09:00, 矛盾がある場合 strptimeは「年」を優先します。
p strptime('Thu Jan 6 9:18:24 +09:00 2015', '%A %B %d %H:%M:%S %z %Y', :invalid=>:raise)
#=> ArgumentError, 矛盾がある場合例外を投げるようにもできます。
・When.when?
p when?('1950 Aug 31', :parse=>'%Y %B %d')
#=> 1950-08-31
p when?('Thu Jan 6 9:18:24 JST 2015', :parse=>'%A %B %d %H:%M:%S %z %Y')
#=> 2022-01-06T09:18:24+09:00, 矛盾がある場合 when?は「月日」を優先します。
p when?('木 1月 6 9:18:24 JST', :abbr=>2015, :parse=>['%A %B %d %H:%M:%S %z', 'ja'])
#=> 2022-01-06T09:18:24+09:00
p when?('昭和十五年十一月廿日', :parse=>Locale::JapaneseParser)
#=> 昭和15(1940).11.20
p when?('昭和甲子年11月甲子', :parse=>Locale::JapaneseParser)
#=> 昭和59(1984).11.26
p when?('明治元年閏4月甲寅12時6分3秒+09:00', :parse=>Locale::JapaneseParser)
#=> 明治01(1868).04=07T12:06:03+09:00
日本語ローケールでの月名(1月など)は省略名とみなしてパースします。
[1] 例によって GitHub は更新しましたが、gem の更新は
次回バージョンアップ時です。
この記事へのコメント