【问题标题】:getting error after parsing a String into a Localdate将字符串解析为 Localdate 后出现错误
【发布时间】:2020-05-19 07:51:49
【问题描述】:

我不明白为什么当我更改日期格式然后我将其解析为 localDate 以将其设置在我的对象中时,我不断收到此错误:

java.time.format.DateTimeParseException:无法在索引 0 处解析文本“07/02/2020”

这是我的代码:

    LocalDate dateMission = mission.getDateMission(); //getting my date in yyyy/MM/dd
    LocalDate newDateMission = dateMission.plusDays(1); //Adding + 1 day in yyyy/MM/dd
    String test = DateTimeFormatter.ofPattern("dd-MM-yyyy", Locale.FRANCE).format(newDateMission); // changing format yyyy/MM/dd to dd/MM/yyyy
    LocalDate finnalDateMission = LocalDate.parse(test); //parsing string to LocalDate

    mission.setDateMission(finnalDateMission); // setting new date in LocalDate in format dd/MM/yyyy

【问题讨论】:

标签: java date parsing localdate


【解决方案1】:

你所做的似乎没有意义。 LocalDate 没有格式,当您必须在某处打印或输入为字符串时,您只会担心格式。 如果您需要做的只是增加一天,则无需将日期格式化为字符串然后将其解析回来。
您可以像这样简化代码:

mission.setDateMission(mission.getDateMission().plusDays(1));

也就是说,您的代码失败了,因为您正在生成格式为“dd-MM-yyyy”的字符串,但是您在没有指定格式的情况下调用了 LocalDate.parse。 该方法使用 DateTimeFormatter.ISO_LOCAL_DATE,大致意思是它的格式为“yyyy-MM-dd”。

【讨论】:

  • 是的,但这并不能解析我需要的格式。
  • 这在 Localdate 中设置了对象“DateMission”:yyyy/MM/dd 但是我需要在 dd/MM/yyyy 中解析它
  • 这就是我写这篇文章的原因,这是我唯一能找到的几乎可以工作的东西......
  • 为什么需要以那种格式解析日期?你需要在某个地方打印吗?无论如何,为了以该格式解析日期,您需要调用采用日期格式的 parse 方法:javadoc。代码LocalDate.parse(test, DateTimeFormatter.ofPattern("dd-MM-yyyy", Locale.FRANCE))
猜你喜欢
  • 2019-07-24
  • 2015-10-14
  • 2017-05-12
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
相关资源
最近更新 更多