私は各クラスのオブジェクトを作成するため JavaのGregorianCalendarクラスとCalendarクラスの違いは?
同様カレンダー今日= Calendar.getInstance()が見つかりました。両方のクラスを使用している間。GregorianCalendar today = new GregorianCalendar();
なぜそうですか?そして、他のものを使うことの利点は何ですか?
私は各クラスのオブジェクトを作成するため JavaのGregorianCalendarクラスとCalendarクラスの違いは?
同様カレンダー今日= Calendar.getInstance()が見つかりました。両方のクラスを使用している間。GregorianCalendar today = new GregorianCalendar();
なぜそうですか?そして、他のものを使うことの利点は何ですか?
ほとんどのロケールでは、Calendar.getInstance()
と書くとGregorianCalendar
オブジェクトが作成されます。しかし、いくつかの例外があります。ロケールをJapaneseImperialCalendar
またはBuddhistCalendar
に設定することができます。
Calendar
がGregorianCalendar
であることが本当に必要な場合は、new GregorianCalendar()
と明示的に書き込むことができます。しかし、一般的には、JVMがロケールに基づいて適切な種類のCalendar
を選択するようにすると、より良いフォームとみなされます。つまり、Calendar.getInstance()
と書いて、他のカレンダータイプのいずれかを使用する可能性に対処する必要があります。
Calendar
クラスでは、getInstance()
には、イランやサウジアラビアで使用されているような他の種類のカレンダーのいずれかを返すロジックがありません。
カレンダークラスは、抽象クラス以外の何ものでもありません。抽象クラスを作成する主な理由は、世界中で利用可能な複数のタイプのカレンダーが存在することです。
カレンダーは抽象クラスです。インスタンスを取得するには、実際の実装が必要です。 GregorianCalendarは、[グレゴリオ暦](https://en.wikipedia.org/wiki/Gregorian_calendar)の実装です。 Calendar.getInstance()は、ロケールに応じてGregorianCalendar、BuddhistCalendar、またはJapaneseImperialCalendarを返します。 –
GregorianCalendarは閏年をサポートしています。これは、4年ごとに2月29日 –