gpt4 book ai didi

java - 如何在 Java 8 (Scala) 中将日期时间字符串转换为长(UNIX 纪元时间)毫秒

转载 作者:行者123 更新时间:2023-11-29 10:08:37 25 4
gpt4 key购买 nike

此题秒解案例:How to convert a date time string to long (UNIX Epoch Time) in Java 8 (Scala)

但如果我想要毫秒,我似乎必须使用

def dateTimeStringToEpoch(s: String, pattern: String): Long = 
LocalDateTime.parse(s, DateTimeFormatter.ofPattern(pattern))
.atZone(ZoneId.ofOffset("UTC", ZoneOffset.ofHours(0)))
.toInstant().toEpochMilli

这对于我在另一个问题中详述的 4 个问题来说是丑陋的(我不喜欢的主要是魔术文字 "UTC" 和魔术数字 0 ).

不幸的是,以下内容无法编译

def dateTimeStringToEpoch(s: String, pattern: String): Long = 
LocalDateTime.parse(s, DateTimeFormatter.ofPattern(pattern))
.toEpochMilliSecond(ZoneOffset.UTC)

因为 toEpochMilliSecond 不存在

最佳答案

你能不能用LocalDateTime#atOffsetZoneOffset#UTC

LocalDateTime.parse(s, dateTimeFormatter).atOffset(ZoneOffset.UTC).toInstant().toEpochMilli()

正如@Andreas 在评论中指出的那样,ZoneOffset 是一个 ZoneId,因此您可以使用

def dateTimeStringToEpoch(s: String, pattern: String): Long = 
LocalDateTime.parse(s, DateTimeFormatter.ofPattern(pattern))
.atZone(ZoneOffset.UTC)
.toInstant()
.toEpochMilli()

关于java - 如何在 Java 8 (Scala) 中将日期时间字符串转换为长(UNIX 纪元时间)毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55124653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com