我有一个遗留的 Java 应用程序,它的性能瓶颈是由于使用了日历。由于 Calendar 是一个可变对象,我们必须在每次获取它时进行克隆。
public Calendar getCalendar() {
return (Calendar)calendar.clone();
}
我们还发现,在我们的应用程序中,我们根本没有使用时区信息。我在想,我们是否应该将代码重构为
public long getTimestamp() {
return timestamp;
}
只有在需要进行日期/时间运算时,我们才会将时间戳转为Calendar或Joda DateTime。
或者为了防止不可预见的 future ,我们应该使用Joda DateTime吗? ?
public DateTime getDateTime() {
return dateTime;
}
最佳答案
一般来说,如果你不关心时区,而且你要存储很多时间戳,你最好存储为long-s。每个时间戳是 8 个字节。所有围绕“long”的面向对象的日期时间包装器每个时间戳至少消耗 24 个字节。当您需要执行任何日期时间算法时 - 将您的长时间戳转换为 Joda DateTime(或 MutableDateTime)。它们都是作为“长”字段的包装器实现的,因此从长字段创建它们非常便宜。
关于java - 使用长时间戳或 Joda 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4130133/