簡體   English   中英

如何在跨類的模塊化Java項目中表示日期和時間屬性? (mongo用作數據庫)

[英]How to represent in a modular java project date and time attributes across classes? (mongo used as DB)

我們正在尋找代表類中日期和時間屬性的最佳方法,這些屬性將保留在mongoDB中。

Mongo內部使用javascript中的Date(),因此我們可以使用Java new Date(long millis)構造函數,該構造函數不建議使用它來創建日期實例,並將其再次用於millis中的getTime() 我們想要使用Date,因為以后可以在其上使用$ date mongo操作。 簡單的長毫秒不可能做到這一點。

但是,我們正在考慮如何在項目中表示時間的最佳方法,因為我們可能會處理諸如夏時制,不同的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小時差異?
  • 您能想到一種更好的方法來表示我們項目中的日期/時間嗎? 解決此問題的標准方法是什么?

您可以直接存儲日期。 時間以UTC的形式存儲在內部,因此夏令時對您來說不是問題。 該驅動程序當前不支持Java 8(或joda時間)日期/時間類型,但是周圍有顯示該操作方式的鏈接。 如果您使用的是詞素,則可以在此處查看Java 8的LocalDateTime轉換器的外觀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM