我一直在使用Processing 3.0,当我的Arduino输出某些值时,我试图打印一个简单的时间戳,但它不起作用。我尝试使用 SimpleDateFormat,但它总是返回1970.01.17 17:48:35 GMT
,而不是实际时间。下面是MVCE:
void setup ()
{
SimpleDateFormat format = new SimpleDateFormat ("yyyy.MM.dd HH:mm:ss z");
format.setTimeZone (TimeZone.getDefault());
long timestamp = getTimeNow();
println(format.format(new Date(timestamp)));
println(timestamp);
}
long getTimeNow ()
{
Date d = new Date ();
Calendar cal = new GregorianCalendar();
long current = d.getTime()/1000;
long timezone = cal.get(Calendar.ZONE_OFFSET)/1000;
long daylight = cal.get(Calendar.DST_OFFSET)/1000;
return current + timezone + daylight;
}
输出示例:
1970.01.17 17:48:35 GMT
1442915733
我怀疑问题出在getTimeNow()
,因为,如果我将这些值插入在线纪元转换器,我会得到正确的时间。上面的代码有什么问题?
The Date
object 参数接受以毫秒为单位的时间,而不是秒。您需要将其乘以 1000,并确保提供同样长的时间。
Date dateObj = new Date(1442915733L * 1000);
System.out.println(dateObj);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)