Sur*_*rti 5 java parsing android date kotlin
我想以这种格式解析此日期 2021-11-03T14:09:31.135Z ( message.created_at)
我的代码是这样的:
val dateFormat = SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS")
var convertedDate = Date()
try {
convertedDate = dateFormat.parse(message.created_at)
} catch (e: ParseException) {
e.printStackTrace()
}
Run Code Online (Sandbox Code Playgroud)
解析失败
不要使用SimpleDateFormat它,它已经过时了,而且很麻烦。
用于DateTimeFormatter解析日期。
fun parseDate() {
var formatter: DateTimeFormatter? = null
val date = "2021-11-03T14:09:31.135Z" // your date string
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX") // formatter
val dateTime: ZonedDateTime = ZonedDateTime.parse(date, parser) // date object
val formatter2: DateTimeFormatter =
DateTimeFormatter.ofPattern("EEEE, MMM d : HH:mm") // if you want to convert it any other format
Log.e("Date", "" + dateTime.format(formatter2))
}
}
Run Code Online (Sandbox Code Playgroud)
输出: 11 月 3 日星期三:14:09
要在 android 8 以下使用此功能,请使用脱糖
嗯,格式并不完全像字符串的样子:
T日期和时间之间有一个空格而不是文字hh,它是 12 小时格式。HH代替使用。这种格式应该可以做到:
yyyy-MM-dd'T'HH:mm:ss.SSSX
Run Code Online (Sandbox Code Playgroud)
但请注意,Date和SimpleDateFormat已经过时且麻烦。java.time代替使用。如果您的 Android API 级别似乎太低,您可以使用ThreeTen Backport。
| 归档时间: |
|
| 查看次数: |
3474 次 |
| 最近记录: |