我有以下代码,在 Unix 服务器(WAS 5.1)上运行,它是我们公司的测试环境。当我尝试执行以下代码时,我总是得到昨天的日期(即,如果我今天执行 2012 年 9 月 27 日,它将返回日期为 2012 年 9 月 26 日)
long userSelectedTimeLong = date.getTime()
我有以下代码,在 Unix 服务器(WAS 5.1)上运行,它是我们公司的测试环境。当我尝试执行以下代码时,我总是得到昨天的日期(即,如果我今天执行 2012 年 9 月 27 日,它将返回日期为 2012 年 9 月 26 日)
long userSelectedTimeLong = date.getTime()
日期根据TimeZone
机器返回时间。您的服务器可能托管在其他地方并且 TimeZone 值不同。您需要通过具有相同的时区来比较日期的值。
一旦你这样做了,下一个任务就是date
变量真的包含当前日期。您可以使用打印一个简单的日志new Date().getTime()
另一种可能性:服务器是否与某种时间服务同步?(ntp, ...) 也许只是 Unix 机器上的系统日期设置错误。
会很好用
long userSelectedTimeLong = Calendar.getInstance().getTimeInMillis()
我曾经遇到过类似的问题;-) 检查本地日期变量是否在应用程序启动时被实例化,并且在应用程序运行时可能没有被刷新。