Java Calendar返回不同的日期

时间:2011-12-05 23:43:06

标签: java

我执行以下操作:

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。

我没有想法 - 有人可以向我解释一下吗?这给我带来了很大麻烦: - (

感谢您的任何指示。

干杯, 基督教

1 个答案:

答案 0 :(得分:4)

这是您的区域设置。当具有de_DE java语言环境时,本周为14,当具有en_US语言环境时,本周为15.将您的计算机设置为相同的语言环境,它们现在应该可以正常工作。

我只测试了我的语言环境与德语语言环境,并且无法在线找到可靠的列表,其中哪些语言环境有转移的周计数,但我确定这对您来说是个问题。

以编程方式查看您的区域设置:

 Locale.getDefault();

要在Windows 7中更改区域设置:

 Control Panel --> Region & Language --> Location Tab  --> Current Location
相关问题