0

我有以下代码,在 Unix 服务器(WAS 5.1)上运行,它是我们公司的测试环境。当我尝试执行以下代码时,我总是得到昨天的日期(即,如果我今天执行 2012 年 9 月 27 日,它将返回日期为 2012 年 9 月 26 日)

long userSelectedTimeLong = date.getTime()
4

4 回答 4

1

日期根据TimeZone机器返回时间。您的服务器可能托管在其他地方并且 TimeZone 值不同。您需要通过具有相同的时区来比较日期的值。

一旦你这样做了,下一个任务就是date变量真的包含当前日期。您可以使用打印一个简单的日志new Date().getTime()

于 2012-09-27T11:51:15.767 回答
0

另一种可能性:服务器是否与某种时间服务同步?(ntp, ...) 也许只是 Unix 机器上的系统日期设置错误。

于 2012-09-27T12:59:37.933 回答
0

会很好用 long userSelectedTimeLong = Calendar.getInstance().getTimeInMillis()

于 2012-09-27T12:18:22.947 回答
0

我曾经遇到过类似的问题;-) 检查本地日期变量是否在应用程序启动时被实例化,并且在应用程序运行时可能没有被刷新。

于 2012-09-27T12:08:01.000 回答