java - 如何解析日期时间并将其与相应的时区相关联
问题描述
我正在尝试读取格式中的字符串2019-12-23 13:35:00
以创建 DateTime 对象并将其与我知道它对应的特定时区相关联(GMT-5)
我正在尝试这样做:
val string1 = "2019-12-23 13:35:00"
val sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
sdf.setTimeZone(StaticDateTimeZone.forID("Etc/GMT-5").toTimeZone)
val date = sdf.parse(string1)
输出不是我想要的,因为它不是假设日期时间不在 GMT-5 时区,而是在我系统的时区 (GMT+0) 中,因此将日期时间调整为 GMT-5:Mon Dec 23 08:35:00 GMT 2019
如何创建一个不更改输入的日期时间对象,而只是将时区与其相关联?
解决方案
看来您正在使用JodaTime,然后转换为java.util.Date
. 您可以直接使用java.time
Java 8 中的包:
val string1 = "2019-12-23 13:35:00"
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
val date = LocalDateTime.parse(string1, formatter)
date.atZone(ZoneId.of("Etc/GMT-5"))
这使:
date: java.time.LocalDateTime = 2019-12-23T13:35
res0: java.time.ZonedDateTime = 2019-12-23T13:35+05:00[Etc/GMT-5]
LocalDateTime
生成一个没有附加任何时区的日期。最后一行有效地ZonedDateTime
从前一个日期创建一个新的,并在其上添加给定的时区。如果您需要返回java.util.Date
,请参阅此答案。
推荐阅读
- java - Jline 终端编写器输出格式错误的输出
- r - 在R中自动设置变量的类?
- java - Java - 存储在文件中的盐值与从文件中检索到的相同盐值不同
- android - 尝试通过列表视图显示数据时应用程序崩溃
- php - 像其他变量一样在 PHP 中发送的数组(对于每个索引)
- json - 如何在 ADFv2 中放气后强制执行静态文件夹路径
- php - 将时间表的时隙组合到数组中 - PHP
- css - 如何根据输入修改 CSS 浮动标签
- python - ValueError:无法将大小为 0 的序列复制到维度为 56 的数组轴
- python-3.x - pandas 内部如何执行滚动窗口?