android Jetpack编写格式日期字符串

6rqinv9w  于 2023-04-10  发布在  Android
关注(0)|答案(1)|浏览(114)

请问,如何格式化这些日期字符串: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
    }
}

它不起作用。它返回作为参数传递的字符串,按顺序,它抛出了一个异常。

vbopmzt1

vbopmzt11#

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

相关问题