请问如何格式化这些日期字符串:2017-04-08T18:39:42Z
或2023-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/