Dateインスタンスを生成するメソッドは数あれど、罠があります。
こいつだ。
Date.parse()
↑は個人情報の"地域"の設定により指定する日付の指定形式が異なります。
詳しくはヘルプ見てください。
ちょいちょいと実験してみた。
date.parse('2009/12/27'); US×、JP○
date.parse('2009-12-27'); US×、JP○
date.parse('12/27/2009'); US○、JP×
date.parse('12-27-2009'); US×、JP×
ということで、グローバル環境の場合日本じゃ動くけど
USだと動かないといった事象が発生します。
※逆もしかり
Dateインスタンスを作る場合は将来グローバルになった時のことを
考慮してDate.valueOf()を利用することを推奨します。
※Date.valueOf()メソッドは必ず"yyyy-MM-dd HH:mm:ss" での指定になります。
Date.valueOf('2009-12-29'); US○、JP○
一番の問題はこれを知らない海外の開発者が"date.parse('12/27/2009');"を
使うことでしょう。。。
ヘルプにDate.parseはロケールの問題から非推奨と書いてくれればorz
2010年1月19日火曜日
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿