简体   繁体   中英

Getting current datetime using Calendar.getInstance() vs new GregorianCalendar()

What might be the difference between getting datetime using

Calendar.getInstance()

vs

new GregorianCalendar()

?

Looking in the source of Calendar.getInstance() :

private static Calendar createCalendar(TimeZone zone, Locale aLocale) {
    // If the specified locale is a Thai locale, returns a BuddhistCalendar
    // instance.
    if ("th".equals(aLocale.getLanguage())
        && ("TH".equals(aLocale.getCountry()))) {
        return new sun.util.BuddhistCalendar(zone, aLocale);
    } else if ("JP".equals(aLocale.getVariant())
        && "JP".equals(aLocale.getCountry())
        && "ja".equals(aLocale.getLanguage())) {
        return new JapaneseImperialCalendar(zone, aLocale);
    }       

    // else create the default calendar
    return new GregorianCalendar(zone, aLocale);    
}

So getInstance() will return a Calendar based on your default Locale and TimeZone .

Calendar.getInstance() will give you a Calendar using the default time zone and locale , which can result in a GregorianCalendar , a BuddhistCalendar , or a JapaneseImperialCalendar .

GregorianCalendar will always give you, well, a Gregorian calendar.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM