首页 > 解决方案 > 从包括 TimeZone 在内的时间戳中获取特定格式的时间

问题描述

我有一个简单的函数来从时间戳中提取时间,它是字符串。

timestamp(input)  : "2020-08-13T09:33:17Z"
outputTime(output): "09:33"
desired output    : "12:33"

功能:

fun getTimeFromTimestamp(timestamp: String): String {
    val inputFormat: DateFormat = SimpleDateFormat("yyyy-MM-dd\'T\'HH:mm:ss\'Z\'", Locale.getDefault())
    val time = inputFormat.parse(timestamp) ?: Date()
    val outputFormat: DateFormat = SimpleDateFormat("HH:mm", Locale.getDefault())
    val outputTime = outputFormat.format(time)

    return outputTime
}

问题是它不会影响输出中的时区,GMT+3在这种情况下就是这样。

你可以看我的调试截图

如何确保显示的时间包括随附的时区 (GMT+3)?

标签: androiddatetimetimezonesimpledateformat

解决方案


输出时间采用该格式,因为您HH:mm在此行中将其指定为 so ( )

val outputFormat: DateFormat = SimpleDateFormat("HH:mm", Locale.getDefault())

如果您希望它包含时区,请将时区附加到输出字符串

编辑

"HH:mm zZ"似乎对我有用,看看这个小提琴


推荐阅读