我正在尝试将下面两行代码从c#重写为java。
long ticks1970Onwards = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).Ticks;
long newTs = (DateTime.UtcNow.Ticks - ticks1970Onwards)/10000;
我尝试了多种方法,但没有找到正确的解决方法。
ZonedDateTime dt1 = LocalDateTime.now().atZone(ZoneId.of("UTC"));
ZonedDateTime dt2 = LocalDateTime.of(1901, 1, 1, 0, 0).atZone(ZoneId.of("UTC"));
Duration duration2 = Duration.between(dt2, dt1);
System.out.printf("Duration = %s milliseconds.%n", duration2.getSeconds()*1000);
2条答案
按热度按时间hjqgdpho1#
例子
导入java.util.*;
公开课考试{
}
例子
导入java.util.calendar;导入java.util.date;
公共类datehelper{
tv6aics12#
瞬间#toepochmilli
使用它来转换
Instant.now()
以毫秒为单位1970-01-01T00:00:00Z
哪里Z
代表Zulu
时间和代表UTC
.您可以将此结果与c#游戏场上的c#代码的结果进行比较。
注意:避免用三个字母的缩写指定时区。时区应以区域/城市的格式指定名称,例如。
ZoneId.of("Europe/London")
. 在这个大会上ZoneId
为了UTC
可以指定为ZoneId.of("Etc/UTC")
. 按时间规定的时区UTC[+/-]Offset
可以指定为Etc/GMT[+/-]Offset
例如ZoneId.of("Etc/GMT+1")
,ZoneId.of("Etc/GMT+1")
等。也有一些例外情况,例如指定
Turkey
,我们使用下面的代码将为您提供所有可用的
ZoneId
学生: