[英]How to convert Date to ZonedDateTime?
我有各種java.util.Date
對象,其格式為: 2014-01-21 10:28:57.122Z
。 我想將它們全部轉換為ZonedDateTime
對象。
根據這個 SO問題和ZonedDateTime
的ofInstant()
,一種方式是這樣的:
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.