【问题标题】:Converting number only string into LocalDateTime将仅数字字符串转换为 LocalDateTime
【发布时间】:2021-01-20 00:45:12
【问题描述】:

我在网上搜索过,但真的找不到我希望的方法。

我的数据看起来像“20201005114527”、“20201002173838”......

并希望将它们转换为 LocalDateTime。

之后会再次转换成json。

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "xxx/xxx") 
private LocalDateTime xxxxxDate;

但我只是对将那些“仅数字字符串”转换为 LocalDateTime 感到困惑。

【问题讨论】:

  • 您是否只想将字符串 20201005114527 转换为 LocalDateTime 的实例?
  • 除非您将时间用于“预订约会”,否则请使用 ZonedDateTime ot Instant 代替常规业务应用程序来存储记录。更多解释可以在这里找到。查看超过 900 次投票的答案:stackoverflow.com/questions/32437550/…
  • 喜欢this answer

标签: java localdatetime


【解决方案1】:

使用格式掩码yyyyMMddHHmmss?

@JsonFormat(pattern = "yyyyMMddHHmmss")
private LocalDateTime xxxxxDate;

【讨论】:

  • 那部分由我的同事完成,无法更改..
  • 我在这里看不到任何其他明显的解决方法。如果某些数据的格式与注解中的当前掩码不匹配,则需要更改掩码。
【解决方案2】:

解析仅包含数字的日期时间字符串与解析任何其他格式的日期时间字符串没有任何不同。

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuuMMddHHmmss");
    String numberOnlyString = "20201005114527";
    LocalDateTime xxxxxDate = LocalDateTime.parse(numberOnlyString, formatter);
    System.out.println(xxxxxDate);

输出:

2020-10-05T11:45:27

【讨论】:

    猜你喜欢
    • 2019-11-27
    • 2019-08-07
    • 1970-01-01
    • 2017-08-03
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多