以下内容为我在笔记本电脑上提供的结果(之后)与其他地方不同。
private static void prindStartOfWeek()
{
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
System.out.println(" --------- Before : " + cal.getTime());
cal.set(Calendar.YEAR, 2015);
cal.set(Calendar.WEEK_OF_YEAR, 1);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
cal.set(Calendar.HOUR, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
System.out.println(" --------- After : " + cal.getTime());
}
我使用Eclipse Kepler
,Windows 7 64bit
,Java jdk1.7.0_65
。我Eclipse Juno
也从测试过cmd (executable jar)
。同样适用。
我已经在笔记本电脑上测试了上面的代码,并且可以打印
--------- Before : Fri Nov 20 14:04:07 EET 2015
--------- After : Sun Jan 04 14:00:00 EET 2015
我已经测试过Microsoft Server 2008
运行Java 7
并可以打印(正确的值)
--------- Before : Fri Nov 20 14:09:01 EET 2015
--------- After : Sun Dec 28 14:00:00 EET 2014
--------- Before : Fri Nov 20 10:54:40 UTC 2015
--------- After : Sun Dec 28 00:00:00 UTC 2014
有谁知道可能出了什么问题?我的笔记本电脑时区为“ Europe \ Athens”,但我猜应该没关系。
此外,这是在另一台计算机上测试过的,它可以打印正确的值
--------- Before : Fri Nov 20 14:09:01 EET 2015
--------- After : Sun Dec 28 14:00:00 EET 2014
getCalendar(TimeZone)
“使用指定的时区和默认语言环境获取日历。”
正如@Kartic在上面的评论中指出的那样,在某些地方,星期日被视为一周的第一天,而在其他地方,星期一被视为一周的第一天-这将受到您所在地区的影响。
在运行代码的计算机之间,您可能具有不同的默认语言环境。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句