簡體   English   中英

如何將Date轉換為ZonedDateTime?

[英]How to convert Date to ZonedDateTime?

我有各種java.util.Date對象,其格式為: 2014-01-21 10:28:57.122Z 我想將它們全部轉換為ZonedDateTime對象。

根據這個 SO問題和ZonedDateTimeofInstant() ,一種方式是這樣的:

ZonedDateTime z = ZonedDateTime.ofInstant(dateObject.toInstant(), ZoneId);

問題是,我如何找出ZoneId參數的ZoneId 我無法使用我的系統時間( ZoneId.systemDefault() ),因為我的Date對象都有不同的時區。

java.util.Date對象具有一個時區。 日期始終以UTC格式存儲在內部。

將文本字符串解析為Date對象時,解析器會將時區(如文本中給出的)作為參數應用於解析器,或者默認情況下。

當您顯示Date對象時,格式化程序將在請求的時區中生成所請求的文本,無論是否顯示時區。

因此,在沒有時區信息Date對象時, 必須指定轉換,當你需要的時區ZonedDateTime

更好的是,將文本直接解析為ZonedDateTime,以便可以記住文本中的原始時區。

暫無
暫無

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

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