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

如何将日期值“2017年5月26日”转换为“26/05/2017”?[副本]

窦国源
2023-03-14

是否有任何java库可用于解析特定于语言的序数指示符/后缀?

我有一个日期值,如下所示:2017年5月26日。我想将其转换为26/05/2017。谁能指导我怎么做吗?

共有1个答案

申屠泳
2023-03-14

您可以使用自定义日期格式将此格式直接解析为Java8localdate:

static final Map<Long, String> ORDINAL_DAYS = new HashMap<>();
static
 {
   ORDINAL_DAYS.put(1, "1st");
   .... more ....
   ORDINAL_DAYS.put(26, "26th");
   .... more ....
   ORDINAL_DAYS.put(31, "31st");
 }

static final DateTimeFormatter FORMAT_DAY_MONTH_YEAR = new DateTimeFormatterBuilder()
  .appendText(ChronoField.DAY_OF_MONTH, ORDINAL_DAYS)
  .appendLiteral(' ')
  .appendText(ChronoField.MONTH_OF_YEAR)
  .appendLiteral(' ')
  .appendText(ChronoField.YEAR)
  .toFormatter();


 String dateInString = "26th May 2017";

 LocalDate date = LocalDate.parse(dateInString, FORMAT_DAY_MONTH_YEAR);

这是使用DateTimeFormatter.AppendText的版本,该版本接受用于映射日期字符串的映射。

您需要在ordinal_days中填写所有缺少的条目,这些条目我为了简洁而省略了。

 类似资料:
  • 我有给定匹配格式的日期字符串:2017-03-25T11:24:20或2020-06-26T11:14:00 并想找到一周中的哪一天在给定的日期,在java或科特林

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

  • 在线机器人 【新增】客户回复内容新增接口校验 在多轮会话中,对客户回复内容增加了接口校验的方式,用户可以通过选择接口的入参作为校验的标准。客户输入的内容符合入参数据视为正确回复,对不符合入参数据的回复发送错误提示。 机器人提问前置条件/答案输出条件:原「属性类别]条件变更为「客户输入检查」,客户输入检查内容类型包含属性名词,固定参数,接口校验。 【新增】内部知识库导出增加纯文本答案 增加了纯文本列

  • 企微智客 【新增】引流短链接功能 可以帮助企业各个渠道进行高效沉淀,在渠道放置引流链接,客户点击链接后会被直接引导添加员工企业微信,从而进行进行维护和运营; 并可以结合智能外呼中心,通过挂机短信、批量群发等功能,将有意向的客户快速转化为有效私域流量 使用方法: 1.首先,创建引流短链接。创建时,系统会自动生成一个短链接,只要选择在智客后台创建的渠道活码与其匹配即可 2.之后,复制链接并使用。创建后