我一直在使用Processing 3.0,并且我试图打印一个简单的时间戳,当我的Arduino输出某些值时,但它不起作用。我试图使用SimpleDateFormat,但它总是返回1970.01.17 17:48:35 GMT
,而不是实际的时间。下面是MVCE:SimpleDateFormat总是返回错误的时区1970.01.17
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()
,因为,如果我插值到在线时代转换器我得到正确的时间。上述代码中的问题是什么?
你能指点我们的格式(长)'文档吗? AFAIK这不存在 –
确实,它不存在。应该更彻底地检查参考。不过,如果我尝试使用Date构造函数将其转换为日期,它仍然会给我一个错误的问题。编辑帖子以反映变化。 – MKII