Java 日历日期-性能

Java 日历日期-性能,java,performance,date,calendar,Java,Performance,Date,Calendar,大多数方法,例如getYear()getMonth()都是经过修饰的,并提到使用Calendar.get(Calendar.MONTH) 然而,如前所述,为了做到这一点,我们需要写: Calendar cal = Calendar.getInstance(); cal.setTime(date); 另外,Calendar.getInstance()不会返回相同的Calendar实例,而是始终返回一个新实例 是否有一种更快的方法从日期获取年、月、日等信息,而不是创建日历实例并设置日期,然后获取所

大多数方法,例如
getYear()
getMonth()
都是经过修饰的,并提到使用
Calendar.get(Calendar.MONTH)

然而,如前所述,为了做到这一点,我们需要写:

Calendar cal = Calendar.getInstance();
cal.setTime(date);
另外,
Calendar.getInstance()
不会返回相同的Calendar实例,而是始终返回一个新实例

是否有一种更快的方法从日期获取年、月、日等信息,而不是创建日历实例并设置日期,然后获取所需信息


换句话说,有没有更有效的方法来实现这一点?

GregorianCalendar或SimpleDataFormat,但我想如果您想要更多的使用,并且想要更具体,您可以使用


来源:

您太担心创建新实例了。在当前的JVM中,创建类似于
日历的对象的成本是可以忽略的。在英特尔MacBook上大量使用Java 8时间API或JodaTime…供参考,(a)
Instant.now()
(替换
Java.util.Date
)需要≈ 65纳秒,(b)
zoneDateTime。现在(ZoneId)
(替换
日历
)需要≈ 255纳秒,并且(c)
LocalDate
(替换
java.sql.Date
)需要≈ 210纳米。不太可能是应用程序中的瓶颈。