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