Как создать временные метки в Java, которые не зависят от системных часов локального компьютера? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь добавить запись в приложение для совместной работы, чтобы действия пользователя (например, сообщения чата и щелчки пользовательского интерфейса) записывались в локальный текстовый файл.Позже я синхронизирую текстовые файлы журналов от разных пользователей (на разных компьютерах) с целью сохранения журналов в хронологическом порядке по меткам времени.Мне интересно, как мне записывать метку времени, чтобы не полагаться на системные часы, так как это может вызвать неточную синхронизацию файлов журнала.

В настоящее время я использую класс java Instant (import java.time.Instant;), но я не уверен, что это путь.

String timestamp = Instant.now().toString();
try {
      BufferedWriter writer = new BufferedWriter(new FileWriter("actionLogs.txt", true));
      writer.write("\n" + timestamp + "\t" + username + "\t" + chatContents);
      writer.close();
} catch (IOException ex) {
      System.out.println("caught an IOException");
      ex.printStackTrace(System.out);
}

Спасибо за ваши предложения!

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Ну, свяжите его с определенным часовым поясом и включите его в timemillis, что-то вроде:

 String text = String.valueOf(LocalDateTime.now().atZone(ZoneOffset.UTC).toInstant().toEpochMilli());
 System.out.println(text);
0 голосов
/ 28 марта 2019

Момент - это определенный момент времени; это означает, что он не привязан ни к каким системным часам. Класс Instant в значительной степени подходит.

Это часто представляется в UTC, универсальном скоординированном времени. UTC предназначен для всех наблюдателей одинаково.

Конечно, системный таймер используется в качестве источника времени, поэтому, строго говоря, он зависит от системных часов на локальной машине, если вы не получаете время с сервера времени, но для регистрации я бы не рекомендовал что.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...