Временная метка, выраженная в миллисекундах с 1.1.1970 UTC - это распространенный способ хранения временных меток, например, в Java.
например:
long timestampUtc = System.currentTimeMillis();
Такая временная метка может быть сформирована в формате человеческого времени считывания, например, используя этот код
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
df.setTimeZone(TimeZone.getTimeZone("UTC"));
String humanTimeUtc = df.format(new Date(timestampUtc));
System.out.println(humanTimeUtc);
который дает результат: 2014-02-14 14:58:05
Теперь представьте себе, что сегодня в полночь администрация времени вводит новый второй шаг UTC. Если я запустил код выше, java JRE в моей системе не может знать, что это второе вскармливание, и неверно отформатировало время (на одну секунду).
Правильно ли мое предположение? Как правильно форматировать время (например, в файле журнала) в системах, которые не всегда могут использовать обновленную JRE?.
Справочная информация:
Это используется во встроенном устройстве, которое синхронизирует свои системные часы с помощью GPS, имея GPS-диапазон секунд скачка, сдвинутый на UTC.