Linux和Windows与Java date.getHour()的小时差
我有一些java代码,可以解析字符串并创建日期对象。在Linux上,一切正常,但在Windows上,它会持续在19:00:00而不是00:00:00开始。代码如下:Linux和Windows与Java date.getHour()的小时差,java,windows,linux,getdate,Java,Windows,Linux,Getdate,我有一些java代码,可以解析字符串并创建日期对象。在Linux上,一切正常,但在Windows上,它会持续在19:00:00而不是00:00:00开始。代码如下: if(currTask != null) { if((m = p0.matcher(currTask)).matches()) { date = new Date(Long.valueOf(m.group(2)) - Long.valueOf(m.group(1)));
if(currTask != null) {
if((m = p0.matcher(currTask)).matches()) {
date = new Date(Long.valueOf(m.group(2)) - Long.valueOf(m.group(1)));
}
else if((m = p.matcher(currTask)).matches()) {
date = new Date(System.currentTimeMillis() - Long.valueOf(m.group(1)));
}
return padded(date.getHours())+":"+padded(date.getMinutes())+":"+padded(date.getSeconds());
}
返回的值是Windows上的问题。这是否与Date的方法在Windows和Linux上的工作方式不一致?谢谢你的帮助
- 肯
Date.getHours()
/getMinutes()
/getSeconds()
/getSeconds();他们被弃用了。您可以使用日历
。。。或者你也可以咬紧牙关使用,这是一个非常优秀的日期和时间API
您的输入看起来像什么,结果是什么?检查您在两个平台上的时区是否相同。。。我猜他们不是。(打印出时区.getDefault().getDisplayName()
以查看默认值。)
但是,无论如何,您不应该使用Date.getHours()
/getMinutes()
/getSeconds()
/getSeconds();他们被弃用了。您可以使用日历
。。。或者你也可以咬紧牙关使用,这是一个非常优秀的日期和时间API
您的输入看起来像什么,结果是什么?差异必须在您的区域设置中。在Linux上,有一些环境变量会影响这一点。让我猜猜:你在美国东部标准时间(GMT-5)?差异一定在你所在的地区。在Linux上,有一些环境变量会影响这一点。让我猜猜:你在东部标准时间(GMT-5)?是的。Date的大多数方法都不推荐使用,所以我不会依赖它们。Date的大多数方法都不推荐使用,所以我不会依赖它们。