2017-10-12 68 views
-3

在使用這兩個類我發現,用於創建各個類別的對象 喜歡java中的GregorianCalendar類和Calendar類之間的區別?

GregorianCalendar today = new GregorianCalendar(); 

日曆今日= Calendar.getInstance();

爲什麼是這樣?相互使用的好處是什麼?

+0

日曆是一個抽象類。你需要一個實際的實現來獲取它的一個實例。 GregorianCalendar是[公曆日曆](https://en.wikipedia.org/wiki/Gregorian_calendar)的實施。 Calendar.getInstance()將根據語言環境返回GregorianCalendar,BuddhistCalendar或JapaneseImperialCalendar。 –

+0

GregorianCalendar支持閏年,這意味着每4年你會在2月29日/ 2日獲得一天額外的一天 –

回答

0

在大多數語言環境中,當您編寫Calendar.getInstance()時,它將創建一個GregorianCalendar對象。但有一些例外。您的區域設置可以設置爲給您JapaneseImperialCalendarBuddhistCalendar

如果您確實需要您的CalendarGregorianCalendar,那麼您可以明確寫入new GregorianCalendar()。但通常認爲讓JVM根據語言環境選擇合適的Calendar更好。也就是說,您應該編寫Calendar.getInstance(),並準備好處理使用其他日曆類型之一的可能性。

Calendar類的getInstance()沒有邏輯返回其他類型的日曆之一,例如在伊朗或沙特阿拉伯使用的日曆。

0

Calendar類只不過是一個抽象類。讓它變得抽象的主要原因是世界上有多種類型的可用日曆。

相關問題