【发布时间】:2021-08-14 06:19:34
【问题描述】:
我从服务器获取低于 UTC 格式的日期:
2021-05-20 09:14:55
现在,我必须将其转换为 24 小时格式和 12 小时格式的本地格式。
要将其转换为 24 小时格式,我已完成以下操作:
val df = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH)
df.timeZone = TimeZone.getTimeZone("UTC")
val date = df.parse(dataDate)
df.timeZone = TimeZone.getDefault()
val formattedDate = df.format(date)
结果为:2021-05-20 14:44:55(24 小时本地)
现在,我尝试将相同的日期转换为 12 小时格式的本地日期,如下所示:
val utc = TimeZone.getTimeZone("UTC")
val inputFormat: DateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
Locale.ENGLISH)
inputFormat.timeZone = utc
val outputFormat: DateFormat = SimpleDateFormat("yyyy-MM-dd hh:mm:ss aa",
Locale.ENGLISH)
outputFormat.timeZone = utc
val dateInput = inputFormat.parse(dataDate)
val output = outputFormat.format(dateInput)
它给我的输出为 2021-05-20 09:14:55 AM(本地 12 小时)
我认为仅添加 AM 作为后缀是错误的。这可能是错误的,因为如果 24 小时日期结果是 2021-05-20 14:44:55 那么 12 小时日期结果应该是 2021-05-20 02:44:55 PM
可能是什么问题?
【问题讨论】:
标签: android date datetime kotlin datetime-format