4 回答
TA贡献1786条经验 获得超11个赞
博士
java.time.Instant.now() // Capture the current moment in UTC.
在内部,该时刻被跟踪为整秒计数加上纳秒计数的小数秒数,因为纪元参考为 1970-01-01T00:00:00Z(均值 UTC)。Z
时间
你的类显然来自乔达时间库。该库的创建者斯蒂芬·科尔伯恩继续用Java 8及以后根据JASR 310内置的java.time类取代了Joda-Time。DateTime
Instant
在 UTC 中片刻,请使用 。要以 UTC 格式捕获当前时刻,请 .Instant
Instant.now()
Instant
表示自 UTC 中 1970 年第一个时刻的纪元引用以来的纳秒数。
调用是相同的,自 1970 年 UTC 开始以来的计数,除了更粗糙的毫秒分辨率而不是纳秒。在实践中,传统的计算机时钟无法以纳秒为单位准确跟踪当前时刻,因此捕获当前时刻可能仅捕获微秒(在Java 9及更高版本中典型)或毫秒(在Java 8中)。System.currentTimeMillis()
Instant
结果:没有必要打电话给系统。
请改用。Instant.now()
ZonedDateTime
等效于 。此类表示通过特定区域(时区)的人们使用的挂钟时间看到的时刻。DateTime
ZonedDateTime
ZoneId z = ZoneId.of( "Africa/Tunis" ) ; ZonedDateTime zdt = ZonedDateTime.now( z ) ;
TA贡献1830条经验 获得超9个赞
是的。 会打电话new DateTime(System.currentTimeMillis())
public DateTime(long instant) {
super(instant);
}
然后
public BaseDateTime(long instant) {
this(instant, ISOChronology.getInstance());
}
并会打电话DateTime.now()
public static DateTime now() {
return new DateTime();
}
然后
public DateTime() {
super();
}
然后
public BaseDateTime() {
this(DateTimeUtils.currentTimeMillis(), ISOChronology.getInstance());
}
这与第一种方式相同。
TA贡献1828条经验 获得超3个赞
是的。
这是相关的代码:
public BaseDateTime() {
this(DateTimeUtils.currentTimeMillis(), ISOChronology.getInstance());
}
public BaseDateTime(long instant) {
this(instant, ISOChronology.getInstance());
}
添加回答
举报