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

DateTimeFormatter支持每月和每年的个位数日期

丌官飞章
2023-03-14

DateTimeFormMater似乎不能处理一个数字的月份中的某一天:

String format = "MM/dd/yyyy";
String date   = "5/3/1969";
System.out.println(new SimpleDateFormat(format).parse(date));
System.out.println(LocalDate.parse(date, DateTimeFormatter.ofPattern(format)));

在此示例中,SimpleDateFormat正确解析日期,但DateTimeFormatter引发异常。如果我使用零填充日期,例如“05/03/1969”,则两者都起作用。但是,如果每月的日期或每年的月份都是个位数,则DateTimeFormatter将引发异常。

什么是DateTimeFormatter格式来解析一个数字和两位数的月份和一年中的月份?

共有1个答案

师俊健
2023-03-14

从文档中可以看到:

number:如果字母数为1,则使用最小位数输出该值,且不加填充。

因此,您需要的格式说明符是m/d/yyyy,使用单字母形式。当然,它仍然会正确解析datestrings像“12/30/1969”一样,因为对于这些day/month值,两位数是“最小位数”。

重要的区别是mmdd需要零填充,而不是md不能处理大于9的值(这有点…不寻常)。

 类似资料:
  • 我有大量的日期范围,如下所示,示例如下。我需要计算每个实际日历年有多少个月。因此,这将分解为: 合同:123 开始日期:2016年11月1日 结束日期:2018年6月1日 2016年11月1日 合同:456 开始日期:2017年5月31日 结束日期:2019年6月1日 2017年5月31日 有人知道解决这个问题的方法吗?每个合同都有一行,都在同一个表中,开始和结束日期列在同一行中。 我原本打算沿着

  • 无法计算年、月、日两个日期之间的差异。问题是每个月有30天,每年有365天,没有例外。这里有很多话题,但我没有找到任何能解决我的问题或帮助我解决问题的。我发现的每一个主题都只是用普通的方法解决计算差分的问题,这很简单。我如何计算这种差异? 我使用的是Java 7(没有机会安装joda time)和groovy 2.4.0。 例子有: 谢谢

  • 问题内容: 我有一张表,如下所示: 我从中创建以下视图: 现在,当我想创建每月计数以了解如何将每日总和除以得出平均列a(即特定月份中的天数)时,就会出现问题。 我知道要在PostgreSQL中获得成功,您可以: 但是我不能使用,我必须以某种方式让它知道分组完成的月份。任何建议,即什么应该取代 ??? 在此视图中: 问题答案: 更快,更短一点,您得到的是天数,而不是: 可以将多个单位合并为一个值。因

  • 本文向大家介绍C#获取每个年,月,周的起始日期和结束日期的方法,包括了C#获取每个年,月,周的起始日期和结束日期的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#获取每个年,月,周的起始日期和结束日期的方法。分享给大家供大家参考,具体如下: 我们在写程序的时候往往要计算出年,月,周的开始日期和结束日期,在这里给出统一求解方法 PS:这里再为大家推荐几款日期与时间相关工具供大家参考使

  • 我想要一个循环,检查当前的月,12个月在未来和4个月在过去。

  • 我想得到两年之间的所有月份,以及两年之间的所有月份,他们的所有数据都将相加,以得到每年的销售额。 以下是我的表格截图: 截图 例如,我想获得2016年至2017年的年销售额,我需要将名称中包含2016年和2017年的所有列相加,以获得年销售额。我知道这张表不是正常的或正常的。但是这张桌子不是我的。 以下是获取两个日期之间月份的示例代码: