繁体   English   中英

为什么date.gettime()在Java中总是返回上一个日期,而不是今天的日期?

[英]Why date.gettime() always returns Previous Date, not today's date in java?

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

long userSelectedTimeLong = date.getTime()

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

一旦执行该操作,下一个任务就是date变量确实包含当前日期。 您可以使用new Date().getTime()打印简单的日志

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM