我执行以下操作:
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("Europe/Berlin"));
c.setFirstDayOfWeek(Calendar.MONDAY);
c.set(Calendar.DAY_OF_MONTH, 9);
c.set(Calendar.MONTH, 3);
c.set(Calendar.YEAR, 2011);
c.set(Calendar.HOUR_OF_DAY, 10);
c.set(Calendar.MINUTE, 20);
int week = c.get(Calendar.WEEK_OF_YEAR)
在我的本地机器上,我的时区是欧洲/柏林。在我的服务器上它是UTC。 在本地框上运行此代码将返回week = 14。 在我的服务器上运行此代码将返回week = 15。
我没有想法 - 有人可以向我解释一下吗?这给我带来了很大麻烦: - (
感谢您的任何指示。
干杯, 基督教
答案 0 :(得分:4)
这是您的区域设置。当具有de_DE java语言环境时,本周为14,当具有en_US语言环境时,本周为15.将您的计算机设置为相同的语言环境,它们现在应该可以正常工作。
我只测试了我的语言环境与德语语言环境,并且无法在线找到可靠的列表,其中哪些语言环境有转移的周计数,但我确定这对您来说是个问题。
以编程方式查看您的区域设置:
Locale.getDefault();
要在Windows 7中更改区域设置:
Control Panel --> Region & Language --> Location Tab --> Current Location