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

获取datetime使用的区别可能是什么?

Calendar.getInstance()

VS

new GregorianCalendar()

查看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()将返回一个基于默认的LocaleTimeZoneCalendar

Calendar.getInstance()将为您提供一个使用默认时区和区域设置Calendar ,这可能会导致GregorianCalendarBuddhistCalendarJapaneseImperialCalendar

GregorianCalendar总是会给你一个公历。