如何表示在一个模块化的java项目的日期和时间属性跨类?(mongo用作DB)



我们正在寻找在我们的类中表示日期和时间属性的最佳方式,这些属性被持久化在mongoDB中。

Mongo内部使用来自javascript的Date(),所以我们可以使用Java new Date(long millis)构造函数来创建日期实例,并使用它来再次以毫升为单位返回getTime()。我们希望使用Date,因为我们以后可以对它使用$ datmongo操作。这对于简单的长铣刀来说是不可能的。

然而,我们正在考虑如何在我们的项目中表示时间的最佳方式,因为我们可能会使用夏令时,不同的UTC区域等。

我们的方法是:

我们想和你核实一下它是否安全有效。
public class SomeClass{
    private Date someDate;
    public Calendar getDate(){
        return new GregorianCalendar().setTimeInMillis(someDate.getTime());
    }
} 

日历应该是安全的使用在UTC区域和节省时间和比较操作等方面,AFAIK。

我们也在考虑使用Java 8 Time,但我们不确定使用新Java的后果——如果我们可能不会遇到一些问题。

  • 那么这种方法好吗?
  • 我们是否应该切换到Java 8并使用Time,因为这样做是安全的?
  • 如果Date仅用于存储数据,那么使用它是否真的安全然后把钱拿回来?我们会不会偶然发现一些问题,如不可预测的+/- 1小时的差异在日期/时间价值吗?
  • 你能想到一个更好的方法来表示日期/时间吗项目吗?解决这个问题的标准方法是什么?

可以直接存储Date。时间在内部存储为UTC,所以夏令时对你来说应该不是问题。该驱动程序目前不支持Java 8(或joda time)日期/时间类型,但有一些链接显示如何实现这一点。如果您正在使用morphia,您可以在这里看到Java 8的LocalDateTime转换器的样子。

相关内容

  • 没有找到相关文章

最新更新