Kotlin Android / Java字符串DateTime格式,API21

时间:2018-12-14 13:58:29

标签: java android datetime kotlin formatter

我想将字符串日期时间转换为格式化的字符串。 例如从“ 2018-12-14T09:55:00”到“ 14.12.2018 09:55”为String => Textview.text

我该如何使用Kotlin或Java for Android?

3 个答案:

答案 0 :(得分:5)

将其解析为LocalDateTime,然后对其进行格式化:

LocalDateTime localDateTime = LocalDateTime.parse("2018-12-14T09:55:00");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");
String output = formatter.format(localDateTime);

如果这不适用于api21,则可以使用:

SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy HH:mm");
String output = formatter.format(parser.parse("2018-12-14T09:55:00"));

或导入ThreeTenABP。

答案 1 :(得分:2)

如果您有一个表示特定时区中的值的日期时间,但该时区未在日期时间字符串本身中进行编码(例如,“ 2020-01-29T09:14:32.000Z”),则您需要在您所在的时区(例如CDT)中显示该信息

val parsed = ZonedDateTime.parse("2020-01-29T09:14:32.000Z", DateTimeFormatter.ISO_DATE_TIME).withZoneSameInstant(ZoneId.of("CDT"))

parsed ZoneDateTime将反映给定的时区。例如,此日期类似于2020年1月28日上午8:32。

答案 2 :(得分:1)

Kotlin API级别26或更高:

    val parsedDate = LocalDateTime.parse("2018-12-14T09:55:00", DateTimeFormatter.ISO_DATE_TIME)
    val formattedDate = parsedDate.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm"))

低于API级别26:

    val parser =  SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss")
    val formatter = SimpleDateFormat("dd.MM.yyyy HH:mm")
    val formattedDate = formatter.format(parser.parse("2018-12-14T09:55:00"))