Получение текущей даты и времени с помощью Calendar.getInstance () против нового GregorianCalendar () - PullRequest
41 голосов
/ 02 августа 2011

Какая разница между получением даты и времени с использованием

Calendar.getInstance()

против

new GregorianCalendar()

Ответы [ 2 ]

48 голосов
/ 02 августа 2011

Поиск в источнике 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);    
}

Так что getInstance() вернет Calendar на основе значений по умолчанию Locale и TimeZone.

32 голосов
/ 02 августа 2011

Calendar.getInstance() даст вам Calendar, используя часовой пояс по умолчанию и локаль , что может привести к GregorianCalendar, BuddhistCalendar или JapaneseImperialCalendar.

GregorianCalendar всегда даст вам григорианский календарь.

...