Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为java程序设置时区标准_Java_Timezone - Fatal编程技术网

为java程序设置时区标准

为java程序设置时区标准,java,timezone,Java,Timezone,我有一个junit测试,如下所述: Calendar cal = somecode.getDate(); assertEquals("1941-02-31-05:00", cal.toString); 这在我的本地机器中传递,但在沙箱中,由于时区标准的差异,cal.toString()的值显示为“1941-02-31Z”。因此,断言不断失败。有人知道我如何在不改变任何一台机器的时区标准或格式的情况下,在这两个地方通过这一关吗。可能只是通过在代码中设置默认时区标准 我无法从Java6升级。因此,

我有一个junit测试,如下所述:

Calendar cal = somecode.getDate();
assertEquals("1941-02-31-05:00", cal.toString);
这在我的本地机器中传递,但在沙箱中,由于时区标准的差异,cal.toString()的值显示为“1941-02-31Z”。因此,断言不断失败。有人知道我如何在不改变任何一台机器的时区标准或格式的情况下,在这两个地方通过这一关吗。可能只是通过在代码中设置默认时区标准

我无法从Java6升级。因此,我需要在代码内部找到解决方案。

您可以使用该方法将时区设置为特定值

但是,您可能也不应该依赖以下格式:

此方法仅用于调试目的,并且返回字符串的格式可能因实现而异

您可能应该单独检查字段,而不是依赖字符串:

cal.setTimeZone(...);
assertEquals(1941, cal.get(Calendar.YEAR));
assertEquals(2, cal.get(Calendar.MONTH));
// ... etc.
您可以使用该方法将时区设置为特定值

但是,您可能也不应该依赖以下格式:

此方法仅用于调试目的,并且返回字符串的格式可能因实现而异

您可能应该单独检查字段,而不是依赖字符串:

cal.setTimeZone(...);
assertEquals(1941, cal.get(Calendar.YEAR));
assertEquals(2, cal.get(Calendar.MONTH));
// ... etc.

由于您的测试明确要求时区
-05:00
,它应该通过设置
日历
对象的时区来指定。由于您的测试明确要求时区
-05:00
,它应该通过设置
日历
对象的时区来指定。