当前位置: 首页 > 面试题库 >

SimpleDateFormat(“ dd-MMM-YYYY”)打印年份提前一年

何琨
2023-03-14
问题内容

我在代码中使用了SimpleDateFormat(“ dd-MMM-YYYY”),输出错误。

    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-YYYY");

    System.out.println("Actual date : "+new Date()+" after Formatting : "+ dateFormat.format(new Date()));

上面的代码给出了: 实际日期:星期二十二月30 13:51:06 IST 2014格式化后:30-Dec-2015

上面的代码是打印日期,年份提前一年。并且此问题仅可在2014年12月28日至31日之间复制。

提前致谢。-阿杰


问题答案:

您正在使用YYYY,这是“ ISO-8601周年”。几乎应 始终 将其与w“每年的周” 结合使用。您要yyyy显示正常的日历年。

它们不同的原因是,一年中的第一个ISO-8601周是包含至少4天的第一个(周一至周日)周。这意味着一年的第一周就是包含第一个星期四的一周。由于2015年1月1日是星期四,因此意味着2014-12-29到2015-01-04的一周都是“
2015年,即第一年的一周”。(如果您看到12月28日…,我会感到很惊讶。)

在其他年份,一年的前几天在上一年的第52周或第53周。例如,2010年1月1日位于2009年第53周,而2011年1月1日位于2010年第52周。



 类似资料:
  • 问题内容: 我正在尝试解析格式的日期。 它引发以下异常 它可以解析格式,但是格式失败。我也很累设定,但是在那种情况下也失败了。 问题答案: 原因是解析默认情况下区分大小写,并且格式化程序无法识别。它只会识别。 您可以使用并调用来构造不区分大小写的解析器: 将格式样式的其余部分的解析样式更改为不区分大小写。 解析可以区分大小写或不区分大小写-默认情况下区分大小写。此方法允许更改区分大小写的解析设置。

  • 我在MVC5 asp上使用dd/MMM/YYYY格式的日期时遇到问题。net项目。主要是在Chrome上,因为它似乎只接受yyyy/mm/dd格式的日期。 为了规范跨浏览器的行为,我使用了jQuery datetimepicker组件。 我尝试了很多方法,但Chrome仍然表示日期无效。即使在将输入定义为文本而不是日期之后。 此外,即使我关闭了特定组件的验证(data val=“false”),C

  • 问题内容: 我是Java新手。我正在尝试将日期从字符串转换为MMM yyyy格式(2016年3月)。我试过了 一切正常。但是当我使用 它不起作用。帮帮我,如何解决这个问题。 问题答案: 您的格式必须符合您的输入 对于 格式应为(仅使用第二个对象) 完整答案 使用 java-8

  • 目前,我正在使用这个。非常感谢任何帮助。

  • 如果我有这个: 如果传入2位数的年份,我的应用程序是否应该抛出异常?这似乎没有任何问题。

  • 问题内容: 我想将日期格式从“ MMM dd,yyyy HH:mm:ss a”更改为“ MM.dd”。我有以下代码 但是我在 请帮忙 问题答案: 三种可能的解释: 您的默认语言环境与输入日期不兼容-例如,它不能理解为月份名称 输入字符串有问题,或者 是错误的类型(例如而不是,或完全是其他类型),或者未声明。 您应该在问题中包括异常的详细信息以弄清是什么,但这是一个工作示例,基本上使用您自己的代码,