繁体   English   中英

如何将 Instant 转换为 joda DateTime?

[英]How to convert Instant to joda DateTime?

如何将 Instant(java.time.Instant) 转换为 joda DateTime (org.joda.time.DateTime)? 或者更确切地说,最好的方法是什么?

tl;博士

new DateTime( myInstant.toEpochMilli() )

java.time替换Joda-Time

你明白java.timeJoda-Time的继承者吗? 如果您有java.time 供您使用,则无需使用Joda-Time 同一个人Stephen Colebourne领导了这两个项目,他吸取了从Joda-Time中吸取的教训,在JSR 310中设计了 java.time

按毫秒数转换

但要直接回答您的问题: Instant object 中提取自 1970 年第一时刻以来的毫秒数( UTC)。 使用该计数构造DateTime object。

当心潜在的数据丢失。 Instant可能包含微秒或纳秒。 当然,在提取毫秒时,这些将被忽略。

java.time.Instant myInstant = Instant.now() ; 
long millis = myInstant.toEpochMilli() ;
org.joda.time.DateTime dt = new DateTime( millis ) ;

java.time中, Instant始终采用 UTC。 要在您的DateTime上匹配它,请将UTC常量传递给此其他构造函数

DateTime dt = new DateTime( millis , DateTimeZone.UTC ) ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM