当前位置: 首页 > 知识库问答 >
问题:

在Java.time(Java 8)中正确地将时间转换为毫秒

方博
2023-03-14
Instant instant = Instant.parse("2015-01-29T18:00:00.0z");
Long instantMilliSeconds = Long.parseLong(instant.getEpochSecond() + "" + instant.get(ChronoField.MILLI_OF_SECOND));
System.out.println(new Date(instantMilliSeconds)); // prints Sun Jun 14 05:06:00 PDT 1970

我尝试使用localdatetime,但找不到有效地转换为毫秒的方法。我不是说这是最好的方法,如果你知道一些更好的,我会非常感谢一些指示。

共有1个答案

仲孙子辰
2023-03-14

您应该使用instant::ToEpochMilli

System.out.println(instant.toEpochMilli());
System.out.println(instant.getEpochSecond());
System.out.println(instant.get(ChronoField.MILLI_OF_SECOND));

印刷品

1422554400000
1422554400
0

您的版本无法运行,因为您忘记在instant.get(chronofield.milli_of_second)中添加额外的0以填充到3个位置。

 类似资料:
  • 我有一个Unix历元时间戳(以毫秒为单位),需要获取本地时间的日期字符串。 这是我的代码: 由上述函数生成的原始时间戳和结果日期、小时和所有其他值均以UTC为单位。如何更改代码以在当地时间获取它?

  • 在Java8中,如何将(在中)转换为(在中)?

  • 我从GPS接收机接收到一个时间戳,它以秒后的微秒时间表示:

  • 问题内容: 我想将毫秒转换为秒(例如,将1500ms转换为1.5s,或将500ms转换为0.5s)。 并不是最好的方法:我正在寻找一种从除法运算中获取余数的方法,因此我可以简单地添加余数。 问题答案: 当然,您只需要: 无需分别手动执行这两个部分- 您只需要浮点运算即可(使用字面量)即可。(我假设您的值是某种形式的整数。) 请注意,和一样,您可能无法准确表示结果。如果您想 精确地 将100ms表示

  • 我想把UTC的时间戳转换成Postgres中的毫秒。我在Ruby控制台上使用这个查询(使用Postgres)。我的问题是: 以上查询结果, 2018年7月5日星期四05:05:39 UTC 00:00至1530767139732.35 输出看起来不错,但在“.”之后我不需要35岁。有没有办法得到13位毫秒的输出。 我会很感激你的帮助。

  • 我正在尝试替换org.joda。现在是java时代。时间在我们的应用程序中。从那时起,我们使用的是org.joda。在时间包中,我们有一个带有org.joda.time.period的ISO8601格式的period。 由于P1Y、P1M、P1W、P1D等格式已存储在我们的系统中,因此在java.time.中寻找相同内容的格式化程序 java.time.Duration支持,小时,分钟和天。 但是