というわけで、用賀にいってまいりました。
今月の 2 時間で学ぶ今月の Java ホットトピック は
- 片貝さん 「NetBeans 5.5 日本語版リリース直前企画 - NetBeans ツアー」
- 奥津さん 「Java 言語 国際化の夕べ」
やっぱり、目当ては奥津さんの I18N。
メインは和暦について。SimpleDateFormat での G の扱いとか、平成 1 年 1 月 1 日は存在しないので厳密にパースしたら例外が発生するとか。やっぱりカレンダは奥が深いです。
ちなみに、元号がいつからはじまったなどというデータはコードに埋め込まれているのではなく、jre/lib/calendar.properties に記述してあるそうです。
このファイルの中身を抜粋してみると...
# # Japanese imperial calendar # # Meiji since 1868-01-01 00:00:00 local time (Gregorian) # Taisho since 1912-07-30 00:00:00 local time (Gregorian) # Showa since 1926-12-26 00:00:00 local time (Gregorian) # Heisei since 1989-01-08 00:00:00 local time (Gregorian) calendar.japanese.type: LocalGregorianCalendar calendar.japanese.eras: \ name=Meiji,abbr=M,since=-3218832000000; \ name=Taisho,abbr=T,since=-1812153600000; \ name=Showa,abbr=S,since=-1357516800000; \ name=Heisei,abbr=H,since=600220800000
後半のハイライトは ResourceBundle クラス。ResourceBundle.Control クラスを導入していろいろできるようになったようです。
たとえば...
- リソースファイルとクラスのどちらかしか探索しないように指定する
- デフォルトリソースを探さないようにする
- リソースを探す順番をコントロールする
- リソースに有効期限を設ける (有効期限がきたら、リソースの更新状況を調べて、更新されていれば再ロードする)
- リソースファイルを XML で表記する
そうか、こう書けばよかったのか。勉強になりました。
「jdk6.dev.java.net のダウンロードページでした ^^;; もしかすると、b104 と b105 はソースは変更なしで、パッケージングが変っただけなのかもしれませんね。」
返信削除基本的に、ソースは変わっていません。バージョン番号に入っていた"rc"が取れただけって感じです。(^^; JDK6、よろしくお願いしますね。:-)
あと、JDK7の開発にも参加してくださいな~。
あぁ、やっぱりそうだったんですね。
返信削除JDK 7 の開発に協力できるかどうかは分かりませんが、今までと同じように早い段階から試すのは確かなので、気がついたことがあればフィードバックするようにします。
しかし、JDK 6 の日本語ドキュメントですら協力できていないという現実も... orz