首页 > 解决方案 > 在Android中使用区域ID时将日期字符串解析为时区不起作用?

问题描述

我正在尝试将以下 UTC 字符串解析为中央时区的日期。

date = "2019-11-18T16:00:00.000Z"

此代码起作用并将日期字符串解析为应用了时区的日期对象:

private fun getTimeZoneDate(date: String): Date {
    val parser = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
    parser.timeZone = TimeZone.getTimeZone("CST")
    return parser.parse(date)
}

但是,我需要使用区域 ID,因为它是我的 API 返回的内容。这不起作用:

private fun getTimeZoneDate(date: String): Date {
    val parser = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
    parser.timeZone = TimeZone.getTimeZone("America/Chicago")
    return parser.parse(date)
}

有什么不同?为什么第二块代码不对字符串日期做任何事情,但第一块(时区设置为“CST”)工作?

标签: androiddatetimezone

解决方案


推荐阅读