пытаясь преобразовать метку времени во время с типом данных как int - PullRequest
0 голосов
/ 20 марта 2019

Пытаясь преобразовать метку времени в любую зону, используя java, здесь я могу конвертировать, используя ZoneID, но он вернет строковый тип данных. здесь я ожидаю вывод, как getTimeMillis ()

Instant now = Instant.ofEpochMilli(lngDate);
ZoneId zoneId = ZoneId.of("America/Chicago");   

ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(now, zoneId);
DateTimeFormatter isoDateFormatter = DateTimeFormatter.ISO_DATE_TIME;
String zdt = zonedDateTime.format(isoDateFormatter);

Здесь я ожидаю только миллисекунды времени (8-значное число) и ниже, предоставляя вам мой код, пожалуйста, помогите решить его.

Ввод: 1552979609000L

DateTimeFormatter isoDateFormatter = DateTimeFormatter.ISO_TIME;
String zdt = zonedDateTime.format(isoDateFormatter); // output in string : 00:13:29-07:00
LocalTime time = LocalTime.parse(zdt, isoDateFormatter); // output in local time : 00:13:29 

1 Ответ

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

Если я правильно понимаю, вам нужна миллисекунда дня, другими словами, отсчет миллисекунд с 00:00:00, как в int от 0 (включительно) до 86 400 000 (исключая; до 8 цифр). Перечисление ChronoField имеет константу для этого, так что это просто, когда вы знаете, как:

    int millisecondOfDay = zonedDateTime.get(ChronoField.MILLI_OF_DAY);
    System.out.println("Millisecond of day: " + millisecondOfDay);

Вывод при запуске только сейчас:

Миллисекунда дня: 7773854

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