Con*_*per 4 java performance scala date simpledateformat
Scala中如何将日期格式转换"2021-02-28 13:38:00.597+0000"为"Mon, Feb 28,2021 15:25:00 UTC"UTC格式?
如果您使用的是 Java 8 之前的旧 Java 版本,最好使用joda-time 中的DateTimeFormat 。顺便说一句,+0000区域偏移量适用于 UTC,所以我可以省略withZoneUTC(),但为了安全起见,我仍然在第一次约会时使用它:
val oldDateString = "2021-02-28 13:38:00.597+0000"
val OldFormat = "yyyy-MM-dd HH:mm:ss.SSSZ"
val NewFormat = "EEE, MMM dd, yyyy HH:mm:ss z"
val formatterOld = DateTimeFormat.forPattern(OldFormat)
val formatterNew = DateTimeFormat.forPattern(NewFormat)
val dt = formatterOld.withZoneUTC().parseDateTime(oldDateString)
val dateStringInUTC = formatterNew.withZoneUTC().print(dt)
println(dt) // 2021-02-28T13:38:00.597Z
println(dateStringInUTC) // Sun, Feb 28, 2021 13:38:00 UTC
Run Code Online (Sandbox Code Playgroud)
更新:对于 Java 8 及更高版本,java.time API 是您的朋友。同样,withZoneSameInstant(ZoneOffset.UTC)也不是真正需要的:
val oldDateString = "2021-02-28 13:38:00.597+0000"
val OldFormat = "yyyy-MM-dd HH:mm:ss.SSSZZZ"
val NewFormat = "EEE, MMM dd, yyyy HH:mm:ss z"
val formatterOld = DateTimeFormatter.ofPattern(OldFormat)
val formatterNew = DateTimeFormatter.ofPattern(NewFormat)
val zdt = ZonedDateTime.parse(oldDateString, formatterOld)
val dateStringInUTC = zdt.withZoneSameInstant(ZoneId.of("UTC")).format(formatterNew)
println(zdt) // 2021-02-28T13:38:00.597Z
println(dateStringInUTC) // Sun, Feb 28, 2021 13:38:00 UTC
Run Code Online (Sandbox Code Playgroud)
更新:切换到 usingZoneId.of("UTC")而不是 ,因为后者最终ZoneOffset.UTC没有打印出来,即使extends ,正如 @deHaar 提到的。String UTCZoneOffsetZoneId
| 归档时间: |
|
| 查看次数: |
719 次 |
| 最近记录: |