格式的一个月,即3个首字母的字符串-Kotlin



我有这个日期" 08/08/2019",我希望它看起来像这样:" 2019年8月8日",我尝试使用when,但想知道是否有更容易的这样做的方法?我知道这有点小问题,但我试图通过互联网找到答案,但找不到。

首先,您需要将字符串转换为日期对象,然后使用新Java.Time

将其转换为您的格式

update

val firstDate = "08/08/2019"
val formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy")
val date = formatter.parse(firstDate)
val desiredFormat = DateTimeFormatter.ofPattern("dd, MMM yyyy").format(date)
println(desiredFormat) //08, Aug 2019

旧答案

val firstDate = "08/08/2019"
val formatter = SimpleDateFormat("dd/MM/yyyy")
val date = formatter.parse(firstDate)
val desiredFormat = SimpleDateFormat("dd, MMM yyyy").format(date)
println(desiredFormat) //08, Aug 2019

使用预定义的局部格式和java.time

    Locale englishIsrael = Locale.forLanguageTag("en-IL");
    DateTimeFormatter shortDateFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT)
            .withLocale(englishIsrael);
    DateTimeFormatter mediumDateFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)
            .withLocale(englishIsrael);
    String dateStringWeHave = "08/08/2019";
    LocalDate date = LocalDate.parse(dateStringWeHave, shortDateFormatter);
    String dateStringWeWant = date.format(mediumDateFormatter);
    System.out.println(dateStringWeWant);

对不起Java语法,我相信您可以翻译。输出为:

2019年8月8日

这并不是您要求的08, Aug 2019。但是,Java通常对全球的人们期望哪种格式有一个很好的主意,所以我的第一个建议是您考虑与这个格式定居(坦率地说08和Comma对我来说也有些奇怪,但是我知道什么?(p>代码片段演示的另一个功能是使用java.Time,现代Java日期和时间API的LocalDateDateTimeFormatter。我热情地推荐Java。在长期过时的日期时间课上,例如Date,尤其是SimpleDateFormat。他们设计不佳。

是有原因的。

如果您的用户说他们绝对想要08, Aug 2019,则需要通过格式模式字符串来指定它:

    DateTimeFormatter handBuiltFormatter = DateTimeFormatter.ofPattern("dd, MMM uuuu", englishIsrael);
    String dateStringWeWant = date.format(handBuiltFormatter);

现在,我们确实得到了您要求的输出:

2019年8月8日

链接: Oracle教程:日期时间说明如何使用Java.Time,现代Java日期和时间API。

您可以使用Java的SimpleDataFormat类:

import java.text.SimpleDateFormat

您的代码中的某个地方:

val myDateStr = "08/08/2019"
val parsedDateObj = SimpleDateFromat("dd/MM/yyyy").parse(myDateStr)
val formattedDateStr = SimpleDateFormat("dd, MMM yyyy").format(parsedDateObj) // "08, Aug 2019"

相关内容

  • 没有找到相关文章

最新更新