【发布时间】:2020-04-29 07:23:26
【问题描述】:
我有一个带有
的日期对象“2020 年 4 月 26 日星期日 11:44:00 GMT+03:00”
我尝试对其进行格式化,但它总是会忽略时区“+3:00”并显示小时而不更改它
我尝试过的:
val sdf = SimpleDateFormat("dd MM yyyy HH:mm:ss", Locale.US)
return sdf.format(this)
【问题讨论】:
-
你想要什么结果?
-
第一个问题一定是你为什么使用旧的 Java 日期 API?尤其是在 Kotlin 中。接下来要指出的是,
Date是 自 UTC 纪元以来的毫秒数 - 没有时区!!您看到的时区是调用toString的结果,它将使用系统默认时区。基本上,这个问题没有多大意义…… -
@sweeper 我想格式化时间,但不知何故,如果我得到 +2GMT 或 +3GMT,我似乎不会在几个小时内影响结果
-
您真的只想以不同的方式格式化该日期时间,还是要将其转换为另一个区域或偏移量?
-
那么你真的应该使用
java.time(或者如果你支持低于26的API级别,则使用反向端口)并使用@kaustubhpatange建议的OffsetDateTime甚至ZonedDateTime。