Java SimpleDateFormat将日期更改为一年
我得到了非常奇怪的结果,我不明白Java SimpleDateFormat将日期更改为一年,java,date,simpledateformat,type-conversion,Java,Date,Simpledateformat,Type Conversion,我得到了非常奇怪的结果,我不明白 public class Test { private static DateFormat df = new SimpleDateFormat("dd.MM.YYYY HH:mm"); public static void main(String[] args) { Date d = new Date(1356912000000L); System.out.println(d); System.out.println(df.f
public class Test {
private static DateFormat df = new SimpleDateFormat("dd.MM.YYYY HH:mm");
public static void main(String[] args) {
Date d = new Date(1356912000000L);
System.out.println(d);
System.out.println(df.format(d));
}
}
给出输出:
Mon Dec 31 01:00:00 CET 2012
31.12.2013 01:00
我认为这可能是一些地区的问题,但这是一个整整一年的转变!有人能解释一下它为什么会这样做吗?而不是:
“dd.MM.YYYY HH:MM”
使用:
“dd.MM.yyyy HH:MM”
yyy
是周年,而不是日历年。您想要的是yyyy
。以下是Java的相关详细信息:
“年中的周”字段的计算值范围为1到53。这个
日历年的第一周是最早的七天周期
从getFirstDayOfWeek()开始,至少包含
getMinimalDaysInFirstWeek()从该年开始的天数。因此,这取决于
getMinimalDaysInFirstWeek()、getFirstDayOfWeek()和
一月一日一周中的一天。一年中的第1周和
次年第1周(不含)按顺序编号
从2岁到52岁或53岁(参与
朱利安-格雷戈里变换)
getFirstDayOfWeek()和getMinimalDaysInFirstWeek()值为
在构造时使用依赖于区域设置的资源初始化
格雷戈里安卡伦达。周测定符合ISO标准
8601当getFirstDayOfWeek()为星期一和
getMinimalDaysInFirstWeek()是4,这些值在区域设置中使用
如果首选标准。这些值可以通过以下方式显式设置:
调用setFirstDayOfWeek()和setMinimalDaysInFirstWeek()
一周一年与一周一年的周期同步。两周之间
第一周和最后一周(含)具有相同的周-年值。
因此,一年中一周的第一天和最后几天可能会有不同的结果
日历年值
例如,1998年1月1日是星期四。如果getFirstDayOfWeek()为
星期一和getMinimalDaysInFirstWeek()为4(ISO 8601标准
然后1998年第1周从1997年12月29日开始,
并于一九九八年一月四日结束。过去三年的一周是1998年
1997日历年的天数。但是,如果getFirstDayOfWeek()是
星期日,然后是1998年第1周,开始于1998年1月4日,结束于
一九九八年一月十日;;1998年的前三天是一周的一部分
1997年的第53周,他们的周年是1997年