我必须将特定的时间戳值转换为时间。 我可以成功地将其转换为 24 小时格式。但在显示或将其转换为 12 小时格式时遇到了小问题。
对于时间戳:1639588870我得到,
24 小时制:22:51(正确)
12 小时制:22:51 PM(不正确)
12 小时制应为 10:51 PM,而不是22:51 PM
我正在使用以下函数将时间戳值转换为我的特定时间格式显示值:
fun getDateTime(timeStamp: String): String? {
var sdf = SimpleDateFormat("HH:mm")
try {
if (prefManager.getDefaultTimeSelection().equals(TIME_24_HOUR)) {
sdf = SimpleDateFormat("HH:mm")
} else {
sdf = SimpleDateFormat("HH:mm aa")
}
val netDate = Date(timeStamp.toLong() * 1000)
return sdf.format(netDate)
} catch (e: Exception) {
return e.toString()
}
}
将时间戳转换为 12 小时格式时可能会出现什么问题?
谢谢。
最佳答案
12 小时格式为 hh
(小写)。 HH
是 24 小时格式。
您必须更改此行
sdf = SimpleDateFormat("HH:mm aa")
至
sdf = SimpleDateFormat("hh:mm aa")
来自文档:
Letter Date or Time Component
H Hour in day (0-23)
h Hour in am/pm (1-12)
SimpleDateFormat 类的文档 https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
关于android - 在 Kotlin 中将时间戳值转换为 12/24 小时时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70367909/