【发布时间】:2013-08-17 02:23:17
【问题描述】:
我有一个遗留的 Java 应用程序,它的性能瓶颈是由于使用了日历。由于 Calendar 是一个可变对象,因此我们每次获取它时都必须进行克隆。
public Calendar getCalendar() {
return (Calendar)calendar.clone();
}
我们还发现,在我们的应用程序中,我们根本没有使用时区信息。我想知道,我们是否应该将代码重构为
public long getTimestamp() {
return timestamp;
}
当我们需要进行日期/时间算术运算时,我们只会将时间戳转换为日历或 Joda DateTime。
或者为了防止不可预见的未来,我们应该使用Joda DateTime吗?
public DateTime getDateTime() {
return dateTime;
}
【问题讨论】:
-
LocalDateTime 是适合使用的类,而不是 DateTime,如果您没有要存储的时区信息
-
@JodaStephen,我想知道将来我是否需要 TimeZone 信息,更改会便宜吗? (这就是为什么我犹豫使用纯“长”)。如果我只是不需要时区信息,我会选择使用“long”,并在需要算术或比较时使用 Java 日历。