设置日期时间字符串的格式

Formatting a date time string

提问人:ant2009 提问时间:12/8/2022 更新时间:12/17/2022 访问量:539

问:

我有以下日期,我们从 API 中获取2022-11-23 06:12:31

我想知道我的方法是否是最好的。

我需要以这种格式显示23 November 2022

我用来删除时间部分,所以我只剩下以下内容:substringbefore"2022-11-23"

我正在使用org.threeten.bp

val DAY_MONTH_YEAR_DISPLAY_FORMATTER =
    DateTimeFormatter.ofPattern("dd MMMM yyyy").withZone(ZoneOffset.systemDefault())

fun formatAsFullMonthDisplayDate(localDateTime: String): String {
    return try {
        LocalDate.parse(localDateTime.substringBefore(" "), DAY_MONTH_YEAR_DISPLAY_FORMATTER).buildDate()
    } catch (ignored: Exception) {
        ""
    }
}

private fun LocalDate.buildDate(): String {
    return buildString {
        append([email protected])
        append(" ")
        append([email protected])
        append(" ")
        append([email protected])
    }
}
Kotlin 三TENBP

评论

0赞 Arpit Shukla 12/13/2022
你在这里有什么问题?你提到了你做了什么,但没有提到你的实际问题是什么。

答:

7赞 Anılhan Hasceviz 12/8/2022 #1

你可以试试这个:

val inputDate = "2022-11-23 06:12:31"
val outputFormat = "dd MMMM yyyy"
val inputFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
val outputFormatter = DateTimeFormatter.ofPattern(outputFormat)

val date = LocalDateTime.parse(inputDate, inputFormat)
val formattedDate = date.format(outputFormatter)

println(formattedDate) // "23 November 2022"