Как я могу получить разницу между местным временем в миллисекундах и unix временем в миллисекундах?(сдвиг от unixtimestamp) - PullRequest
0 голосов
/ 25 апреля 2019

Я знаю, что могу конвертировать unixTime в строковом формате в миллисекунды по местному времени. val currentTimeMillis = serverTimeDateFormat.parse(iso8601).time

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

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Нет понятия "местное время Unix".Временная метка Unix всегда указывается в формате UTC, и ваша «система» использует параметр часового пояса для отображения даты / времени в соответствии с заданным (или локальным или по умолчанию) часовым поясом.

Если вы хотите указать «местное время unix» в мс, вам нужно добавить или вычесть мс в соответствии с разницей часового пояса с UTC.

0 голосов
/ 25 апреля 2019

Вы можете отформатировать время Unix в соответствии с часовым поясом следующим образом:

long unixSeconds = System.currentTimeMillis();
Date date = new java.util.Date(unixSeconds);

SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
// Set time zone
sdf.setTimeZone(java.util.TimeZone.getTimeZone("GMT-4"));
String formattedDate = sdf.format(date);
System.out.println(formattedDate);
...