使用Calendar.getInstance()与新GregorianCalendar()获取当前日期时间

时间:2011-08-01 22:34:26

标签: java calendar gregorian-calendar

使用

获取日期时间之间可能有什么区别

Calendar.getInstance()

vs

new GregorianCalendar()

2 个答案:

答案 0 :(得分:48)

查看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()将根据您的默认CalendarLocale返回TimeZone

答案 1 :(得分:32)

Calendar.getInstance()会使用默认时区和区域设置为您提供Calendar,这可能会产生GregorianCalendarBuddhistCalendar,或JapaneseImperialCalendar

GregorianCalendar总会给你一个公历。