java - 使用长时间戳或 Joda 时间

标签 java jodatime

我有一个遗留的 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/

相关文章:

java - Spring 。访问 Thymeleaf 中的配置变量。

java - 如何在 java 中获取两个日期之间的日期列表?如何包括/排除开始日期/结束日期?

java - 在 Web 方法中使用 JAXB 忽略 JodaTime 方法参数

java - 如何从字符串中解析时间(小时,分钟)?

java - spring web service 2.0所需的axiom依赖版本

java - 为什么当我尝试通过 Intent 传递 Interface 对象时,Parcelable 遇到 IOException

当客户端将对象发送到服务器时,Java 抛出错误,IDE 中没有错误/警告

java - 需要有关 Java 字符串的帮助

java - Joda Time - 重复/每周间隔

android - 如何检查字符串是否是有效的 Joda DateTime