ほとんどの人が気づいているように、カレンダーの日付(特にクラスjava.util.Date
とjava.util.Calendar
)を処理するためのJava APIはひどい混乱です。私の頭の上オフJava date API(java.util.Date、.Calendar)がこのような混乱を引き起こすのはなぜですか?
:
- 日は変更可能
- 日は、タイムスタンプ、ない日
- 日付コンポーネント(日、月、年の間で変換する簡単な方法を表し..です。)と日付
- カレンダーが使用する不格好で、1クラス
に別のカレンダーシステムを統合しようとしますはこれを非常にうまくまとめており、JSR-310もこれらの問題を解消しています。
今私の質問は:
これらのクラスは、Java SDKにそれを作ったどのように?これらの問題のほとんどはかなり明白であり(特にDateは変更可能です)、避けがたいはずです。ではどうしたの?時間的制約?または、問題は振り返って明らかですか?
これは厳密にはプログラミングに関する質問ではないことを認識していますが、APIの設計がどうして悪くなるかを理解することは興味深いことがわかります。結局のところ、ミスは常に良い学習機会(と私は興味があります)です。
二重否定は常に悪い形です...日付が変更できません日付は不変ではないです。 –
Joda-Timeに基づくJSR-310の新しい日付と時刻APIは、Java 7で出荷されることを願っています。 –
DateFormatはスレッドセーフに設計されていません...(http://bugs.sun.com /bugdatabase/view_bug.do?bug_id=4093418) – Arjan