Java 7 DateFormat 将 UTC 日期解析为本地日期
Java 7 DateFormat to parse UTC date to Local Date
你能告诉我 JDK 7 日期格式应该是什么来解析日期 2019-06-18T19:04:30.515 UTC 并将其更改为本地日期时间吗?
在这里您可以找到关于这个主题的有趣文章:
https://en.wikipedia.org/wiki/Coordinated_Universal_Time
模式的解释可以在这里找到:
https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#timezone
这让我建议 "yyyy-MM-dd'T'HH:mm:ss.SSS z" 作为模式。希望对你有帮助。
java.time
对于 Java 6 和 7,您可以使用 ThreeTen-Backport 项目将大部分现代 java.time 功能引入 Java 6 和 Java 7。这意味着您可以避免使用可怕的遗留 date-time 类,例如 SimpleDateFormat
(由 DateTimeFormatter
代替)。
parse the date 2019-06-18T19:04:30.515 UTC
首先我们会处理您的输入字符串以完全符合 ISO 8601。我们将 SPACE 和“UTC”替换为 Z
,发音为“Zulu”。
String input = "2019-06-18T19:04:30.515 UTC".replace( " UTC" , "Z" ) ;
Instant instant = Instant.parse( input ) ;
and change it to local date time?
要从 UTC 调整到另一个时区,请应用 ZoneId
以获得 ZonedDateTime
。
ZoneId z = ZoneId.of( "Pacific/Auckland" ) ; // Or "Europe/Berlin" etc.
ZonedDateTime zdt = instant.atZone( z ) ;
要生成表示 date-time 值的字符串,该值针对用户的人类语言和文化规范进行了本地化,请使用 DateTimeFormatter.ofLocalizedDateTime
。
你能告诉我 JDK 7 日期格式应该是什么来解析日期 2019-06-18T19:04:30.515 UTC 并将其更改为本地日期时间吗?
在这里您可以找到关于这个主题的有趣文章:
https://en.wikipedia.org/wiki/Coordinated_Universal_Time
模式的解释可以在这里找到:
https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#timezone
这让我建议 "yyyy-MM-dd'T'HH:mm:ss.SSS z" 作为模式。希望对你有帮助。
java.time
对于 Java 6 和 7,您可以使用 ThreeTen-Backport 项目将大部分现代 java.time 功能引入 Java 6 和 Java 7。这意味着您可以避免使用可怕的遗留 date-time 类,例如 SimpleDateFormat
(由 DateTimeFormatter
代替)。
parse the date 2019-06-18T19:04:30.515 UTC
首先我们会处理您的输入字符串以完全符合 ISO 8601。我们将 SPACE 和“UTC”替换为 Z
,发音为“Zulu”。
String input = "2019-06-18T19:04:30.515 UTC".replace( " UTC" , "Z" ) ;
Instant instant = Instant.parse( input ) ;
and change it to local date time?
要从 UTC 调整到另一个时区,请应用 ZoneId
以获得 ZonedDateTime
。
ZoneId z = ZoneId.of( "Pacific/Auckland" ) ; // Or "Europe/Berlin" etc.
ZonedDateTime zdt = instant.atZone( z ) ;
要生成表示 date-time 值的字符串,该值针对用户的人类语言和文化规范进行了本地化,请使用 DateTimeFormatter.ofLocalizedDateTime
。