Java Простое средство форматирования даты отображает неправильное значение - PullRequest
3 голосов
/ 03 августа 2020

Возникла проблема с отображением наносекунд с использованием SimpleDateFormat.

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss:SSSSSSS");     
Date dt = sdf.parse("03.08.2020 05:35:19:7600000"); 
System.out.println("Date  :" + sdf.format(dt) );

Результат: Date :03.08.2020 07:41:59:0000000.

Не могли бы вы помочь сделать вывод наносекунд в виде: 7600000? Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 августа 2020

Я предлагаю вам перейти от устаревшего и подверженного ошибкам устаревшего API даты и времени на современный API даты и времени .

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
        DateTimeFormatter format = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss:SSSSSSS");
        LocalDateTime ldt = LocalDateTime.parse("03.08.2020 05:35:19:7600000", format);
        System.out.println(ldt);
    }
}

Вывод:

2020-08-03T05:35:19.760
0 голосов
/ 03 августа 2020

Вы также можете попробовать следующее, а затем проанализировать требуемую дату:

sdf.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...