SimpleDateFormat("dd-MMM-YYYY") 提前一年打印一年
SimpleDateFormat("dd-MMM-YYYY") printing year one year ahead
我在我的代码中使用了 SimpleDateFormat("dd-MMM-YYYY"),它给出了错误的输出。
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-YYYY");
System.out.println("Actual date : "+new Date()+" after Formatting : "+ dateFormat.format(new Date()));
以上代码给出:
实际日期:12 月 30 日星期二 13:51:06 IST 2014 格式化后:2015 年 12 月 30 日
上面的代码是将Year提前1年的打印日期。
此问题仅适用于 2014 年 12 月 28 日至 31 日。
提前致谢。
--阿杰
您正在使用 YYYY
,即 "ISO-8601 week year"。那应该几乎总是与w
、"week in year"一起使用。您希望 yyyy
显示正常的日历年。
它们不同的原因是一年中的第一个 ISO-8601 周是第一个(星期一到星期日)至少包含 4 天的星期。这意味着一年的第一周是第一个星期四。由于 2015 年 1 月 1 日是星期四,这意味着从 2014-12-29 到 2015-01-04 这一周都是 "week year 2015, week of year 1"。 (如果你看到 12 月 28 日,我很惊讶......)
在其他年份,一年的前几天是前一年的第 52 或 53 周。例如,2010 年 1 月 1 日是 2009 年第 53 周,2011 年 1 月 1 日是 2010 年第 52 周。
我在我的代码中使用了 SimpleDateFormat("dd-MMM-YYYY"),它给出了错误的输出。
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-YYYY");
System.out.println("Actual date : "+new Date()+" after Formatting : "+ dateFormat.format(new Date()));
以上代码给出: 实际日期:12 月 30 日星期二 13:51:06 IST 2014 格式化后:2015 年 12 月 30 日
上面的代码是将Year提前1年的打印日期。 此问题仅适用于 2014 年 12 月 28 日至 31 日。
提前致谢。 --阿杰
您正在使用 YYYY
,即 "ISO-8601 week year"。那应该几乎总是与w
、"week in year"一起使用。您希望 yyyy
显示正常的日历年。
它们不同的原因是一年中的第一个 ISO-8601 周是第一个(星期一到星期日)至少包含 4 天的星期。这意味着一年的第一周是第一个星期四。由于 2015 年 1 月 1 日是星期四,这意味着从 2014-12-29 到 2015-01-04 这一周都是 "week year 2015, week of year 1"。 (如果你看到 12 月 28 日,我很惊讶......)
在其他年份,一年的前几天是前一年的第 52 或 53 周。例如,2010 年 1 月 1 日是 2009 年第 53 周,2011 年 1 月 1 日是 2010 年第 52 周。