当前位置: 首页 > 知识库问答 >
问题:

将日期月份格式化为3个首字母的字符串-静态编程语言

陈鸿才
2023-03-14

我有这个日期“08/08/2019”,我希望它看起来像这样:“08, Aug 2019”,我试着在时使用,但想知道是否有更简单的方法来做到这一点?我知道这是一个有点小的问题,但我试图在互联网上找到答案,但我找不到这个。


共有3个答案

齐威
2023-03-14

可以使用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"
夏侯承恩
2023-03-14
匿名用户

    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语法,我相信你能翻译。输出是:

8 8月 2019

这并不完全是您所要求的2019年8月8日08。然而,Java通常对世界各地的人们期望的格式有很好的了解,所以我的第一个建议是您考虑使用这个格式(坦白地说,08逗号在我看来也有点奇怪,但我知道什么?)

代码片段演示的另一个功能是使用java.time(现代java日期和时间API)中的< code>LocalDate和< code>DateTimeFormatter。我强烈推荐java.time,而不是早已过时的日期时间类,比如< code>Date,尤其是< code>SimpleDateFormat。它们设计得很差。它们被替换是有原因的。

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

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

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

08, 8月 2019

链接:Oracle教程:日期时间解释如何使用java.time,即现代的java日期和时间API。

茅秦斩
2023-03-14

首先,您需要将字符串转换为Date对象,然后使用新的java.time将其转换为您的格式

更新

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
 类似资料:
  • 问题内容: 我正在尝试将字符串转换为日期 但在我看来,它有一个。的。这是为什么?我想生成一个日期 问题答案: 日期字符串- 符合- d-每月的某天 M-一年中的月份 y-年 …

  • 问题内容: 我正在使用代码将字符串格式化为日期 但是,如何将日期从格式转换为格式? 问题答案: 使用SimpleDateFormat#format(Date):

  • 问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。

  • 我刚到爪哇。Postgres db包含日期的格式为。我需要转换为。 我已经试过了,但是显示的结果是错误的

  • 问题内容: 我正在尝试将字符串“ 20091229050936”转换为“ 2009年12月29日(UTC)05:09” 给 显然,我犯了一个错误:时间是错误的,它是日期时间对象!它有一个日期 和 一个时间部分! 给 我如何将字符串转换为格式化的日期字符串? 问题答案: 返回一个; 接受作为可选参数: 给

  • 我已经接受了SOF和其他网站上给出的所有答案,并尝试这样做: 但我有个例外: 线程“main”java.lang.IllegalArgumentException中的异常:无法将给定对象格式化为日期 我做错了什么?