SimpleDateFormat(smpdtfmt) 0.0.1

http://jadtfmt.rubyforge.org/smpdtfmt/
http://rubyforge.org/projects/jadtfmt/

これは何?

ICUSimpleDateFormatのラッパです。
実装はJapaneseDateFormatとほとんど同じです。

ビルド/インストール


gem install smpdtfmt

LinuxでのビルドにはICUの開発用パッケージが必要です。
Windowsではicuin38.dllとicuuc38.dllとicudt38.dllが必要です

サンプルコード

時刻をフォーマットする
require 'smpdtfmt'

smpdtfmt = SimpleDateFormat.new('yyyy/MM/dd')

puts smpdtfmt.format(Time.now)
puts smpdtfmt.format(Time.mktime(1989, 1, 1))
puts smpdtfmt.format_attrs(1800, 1, 1)

smpdtfmt.apply_pattern("yyyy-MM-dd");
puts smpdtfmt.format(Time.mktime(1989, 2, 1))


2008/04/19
1989/01/01
1800/01/01
1989-02-01

時刻をパースする
require 'smpdtfmt'

smpdtfmt = SimpleDateFormat.new('yyyy/MM/dd')

puts smpdtfmt.parse('2008/10/10')
puts smpdtfmt.parse('2008/10/00')

smpdtfmt.lenient = false

puts smpdtfmt.parse('2008/10/00')


Fri Oct 10 00:00:00 +0900 2008
Tue Sep 30 00:00:00 +0900 2008
test.rb:10:in `parse': U_ILLEGAL_ARGUMENT_ERROR (RuntimeError)
from test.rb:10

Timeオブジェクトのメソッドとして呼び出す
require 'smpdtfmt'

puts Time.now.dtfmt('yyyy/MM/dd')
puts Time.icuparse('yyyy-MM-dd', '2008-10-10')


2008/04/19
Fri Oct 10 00:00:00 +0900 2008