首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在java中,方法DateTime.now()和新DateTime(System.currentTimeMillis())是否相等?

在java中,方法DateTime.now()和新DateTime(System.currentTimeMillis())是否相等?
EN

Stack Overflow用户
提问于 2019-04-02 02:44:48
回答 4查看 2.2K关注 0票数 1

我需要知道,在java(我的版本jdk 8)中,我可以替换,new DateTime(System.currentTimeMillis())这个代码表单,'DateTime.now()‘?

我用了import org.joda.time.DateTime;

如何在java 8(日期和时间)中编写相同的内容?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-04-02 04:24:11

tl;dr

代码语言:javascript
运行
复制
java.time.Instant.now()  // Capture the current moment in UTC. 

在内部,该时刻被跟踪为整秒的计数加上以纳秒为计数的分数秒,因为时间参照为1970-01-01T00:00:00Z ( Z的意思是UTC)。

java.time

您的DateTime类显然来自Joda-Time库。这个库的创建者Stephen继续用内置到Java 8中的java.time类替换Joda-Time,以及更高版本的JSR 310。

Instant

在UTC的某个时刻,使用Instant。为了捕捉UTC的当前时刻,Instant.now()

Instant表示自1970年世界协调时第一时刻的划时代参考以来的纳秒数。

System.currentTimeMillis()的调用是相同的,从1970年UTC开始就有一个计数,除了更粗的毫秒分辨率而不是纳秒。在实践中,传统的计算机时钟无法以纳秒精确地跟踪当前时刻,因此用Instant捕获当前时刻可能只捕获微秒(在Java9及更高版本中是典型的)或毫秒(在Java8中)。

结果是:不需要再调用使用Instant.now()代替。

ZonedDateTime

相当于DateTime的是ZonedDateTime。这个类表示特定区域(时区)的人所使用的挂钟时间所显示的时刻。

代码语言:javascript
运行
复制
ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
ZonedDateTime zdt = ZonedDateTime.now( z ) ;

票数 5
EN

Stack Overflow用户

发布于 2019-04-02 02:48:39

在Java 8中,DateTime映射到 java.time.ZonedDateTimejava.time.OffsetDateTime

此页面由Joda Time的创建者/作者/维护者编写,并建议:

如果您正在用Java 8编写代码,那么是时候迁移到java.time了.

票数 3
EN

Stack Overflow用户

发布于 2019-04-02 02:54:32

是。new DateTime(System.currentTimeMillis())会打电话给

代码语言:javascript
运行
复制
public DateTime(long instant) {
    super(instant);
}

然后

代码语言:javascript
运行
复制
public BaseDateTime(long instant) {
    this(instant, ISOChronology.getInstance());
}

DateTime.now()会打电话给

代码语言:javascript
运行
复制
public static DateTime now() {
    return new DateTime();
}

然后

代码语言:javascript
运行
复制
public DateTime() {
    super();
}

然后

代码语言:javascript
运行
复制
public BaseDateTime() {
    this(DateTimeUtils.currentTimeMillis(), ISOChronology.getInstance());
}

这和第一条路一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55466219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档