android - Jetpack Compose 格式日期字符串

标签 android date android-jetpack-compose datetime-format java-time

请问如何格式化这些日期字符串:2017-04-08T18:39:42Z2023-04-04T14:01:31-07:00得到这样的东西:August 04, 2017 | 6:39pm 。提前致谢。 我尝试过以下类似的方法:

@RequiresApi(Build.VERSION_CODES.O)
private fun formatDate(date: String): String {

    return try {
        val datePattern = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss", Locale.ENGLISH)
        val offSetDateTime = OffsetDateTime.parse(date, datePattern)
        val formattedDate = "${offSetDateTime.month} ${offSetDateTime.dayOfMonth}, ${offSetDateTime.year}"
        Log.i("formattedDate", formattedDate)
        formattedDate
    } catch (e: Exception) {
        date
    }
}

它不起作用。它返回作为参数传递的字符串,换句话说,它抛出异常。

最佳答案

OffsetDateTime.parse 需要一个包含偏移量的字符串(+/-hh:mm) 使用 LocalDateTime.parse

解析它
    val dateSt = "2017-04-08T18:39:42Z"
    val dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'")
    val formattedDate = LocalDateTime.parse(dateSt, dateFormatter)
    val res = DateTimeFormatter.ofPattern("MMMM dd, yyyy | hh:mma").format(formattedDate) // August 04, 2017 | 6:39pm

关于android - Jetpack Compose 格式日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75968843/

相关文章:

java - 如何获得在 android studio 中打开新 Activity 的按钮?

python - 为两个日期创建循环

datetime - Drupal 6 : Date module and displaying only DATE value, 没有时间

shell脚本获取两个日期之间的差异

android - 如何在 Jetpack Compose 中实现以下布局?

android - BitmapFactory.Options.inBitmap 经常切换ImageView位图导致撕裂

Android:如何使用 root 和 shell 设置 GPS 始终开启,以跟踪工作人员

android - 如何在 Jetpack Compose 中添加工具栏?

android - 在 AsyncTask 中压缩位图时抛出异常不会停止执行

kotlin - 如何防止用户在文本字段中输入两个点jetpack compose