【发布时间】:2015-12-19 04:29:16
【问题描述】:
我一直在使用 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(),因为如果我将这些值插入在线时代转换器,我会得到正确的时间。上面的代码有什么问题?
【问题讨论】:
-
您能否将我们指向
format(long)的文档? AFAIK 这不存在 -
没错,它不存在。应该更彻底地检查参考。尽管如此,如果我尝试使用 Date 构造函数将其转换为日期,它仍然会给我错误的问题。编辑帖子以反映更改。
标签: java date processing simpledateformat epoch