我做以下事情:
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.
我没有想法 – 有人可以向我解释一下吗?这给我带来了很大麻烦:-(
谢谢你的任何指示.
干杯,
基督教
最佳答案
这是你的Locale.当具有de_DE java语言环境时,本周为14,当具有en_US语言环境时,本周为15.将两台计算机设置为相同的语言环境,它们现在应该可以正常工作.
我只测试了我的语言环境与德语环境,并且无法在网上找到一个可靠的列表,其中有哪些语言环境有转移的周数,但我确定这对你来说是个问题.
以编程方式查看您的区域设置:
Locale.getDefault();
要在Windows 7中更改区域设置:
Control Panel --> Region & Language --> Location Tab --> Current Location