SimpleDateFormat всегда возвращает 1970.01.17 с неправильным часовым поясом. ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
SimpleDateFormat всегда возвращает 1970.01.17 с неправильным часовым поясом.

Сообщение Anonymous »

Я использую 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(), поскольку, если я подставлю значения в онлайн-конвертер эпох, я получу правильное время. В чем проблема в приведенном выше коде?

Подробнее здесь: https://stackoverflow.com/questions/327 ... g-timezone

Вернуться в «JAVA»