java - Java 7 DateFormat 将 UTC 日期解析为本地日期
问题描述
您能否让我知道解析日期 2019-06-18T19:04:30.515 UTC 并将其更改为本地日期时间的 JDK 7 日期格式应该是什么?
解决方案
java.time
对于 Java 6 和 7,您可以使用ThreeTen-Backport项目将大多数现代java.time功能引入 Java 6 和 Java 7。这意味着您可以避免使用糟糕的遗留日期时间类,例如SimpleDateFormat
(替换为DateTimeFormatter
) .
解析日期 2019-06-18T19:04:30.515 UTC
首先,我们操作您的输入字符串以完全符合ISO 8601。我们将空格和“UTC”替换为Z
,发音为“Zulu”。
String input = "2019-06-18T19:04:30.515 UTC".replace( " UTC" , "Z" ) ;
Instant instant = Instant.parse( input ) ;
并将其更改为本地日期时间?
要从 UTC 调整到另一个时区,请应用 aZoneId
来获取ZonedDateTime
.
ZoneId z = ZoneId.of( "Pacific/Auckland" ) ; // Or "Europe/Berlin" etc.
ZonedDateTime zdt = instant.atZone( z ) ;
要生成一个字符串,表示为用户的人类语言和文化规范本地化的日期时间值,请使用DateTimeFormatter.ofLocalizedDateTime
.
推荐阅读
- applescript - Applescript 将选定的单词和定义复制到 Notes
- android - 如何在 Jitpack 上使用 maven 为 Kotlin 库发布 KDoc?
- python - 如何从 django-import-export 获取文件?
- wordpress - 在 Wordpress 中查询 ACF 关系字段
- xml - 如何在 BYTEA 的 PostgreSQL 数据库中编码 JPG 图像
- html - 媒体查询不起作用(或其他)
- node.js - 使用nodejs在终端底部创建粘线
- reactjs - 将与 TypeScript 兼容的 PropTypes 转换为
- .net - 为什么将新值添加到 Hashmap 中的现有键会连接值,但前提是它是在循环中完成的
- node.js - 错误:评估失败:ReferenceError:我未定义