【发布时间】:2023-02-19 07:01:17
【问题描述】:
我有不同时区的日期时间记录列表
[
{
"id": 1,
"dateTime": "2023-01-01T14:10:24.478Z"
},
{
"id": 2,
"dateTime": "2023-01-22T08:39:48.374+08:00"
}.
{
"id": 3,
"dateTime": "2023-01-22T08:39:48.374+05:30"
}
]
data class Record(val id: Int, val dateTime: String)
我需要将这些所有 dateTime 转换为我的时区(例如:+04:00)
有没有最好的方法来通过 dateTime 值识别时区以将其转换为我的时区?或者我们是否需要子字符串 dateTime 并查找时区值添加自定义方法来获取时区?
例如:
fun String.timezone() : String? {
return when(this) {
"+05:30" -> "Asia/Calcutta"
"Z" -> "UTC"
.....
else -> null
}
}
(如果知道 dateTime 的时区,我知道如何将 dateTime 转换为我的时区)
【问题讨论】:
-
这些字符串都不表示时区。它们是偏移量,同一时刻同一偏移量中可以有多个不同的时区。然而,价值观做确定一个时间点,所以如果你真的有您的时区,您可以轻松地将值转换为该时区。您应该将这些字符串解析为
OffsetDateTime值,因为这就是它们所代表的。
标签: kotlin datetime timezone datetime-conversion