【问题标题】:Converting Timestamp value to 12/24 hour Time value in Kotlin将时间戳值转换为 Kotlin 中的 12/24 小时时间值
【发布时间】:2022-01-18 21:19:04
【问题描述】:

我必须将特定的时间戳值转换为时间。 我可以成功地将其转换为 24 小时格式。但在显示或将其转换为 12 小时格式时出现小问题。

对于时间戳:1639588870我得到了,

  1. 24 小时制:22:51(正确

  2. 12 小时制:22:51 PM(不正确

12 小时制应该是晚上 10:51 而不是 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 小时格式可能会出现什么问题?

谢谢。

【问题讨论】:

    标签: android kotlin datetime time timestamp


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-09
      • 2013-10-14
      • 2017-02-13
      • 2012-12-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      相关资源
      最近更新 更多