Преобразование даты Java из одного формата в другой без преобразования ее в строку - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь получить текущую системную дату и форматирую ее в Etc / UTC, а затем в этот формат "dd.MM.yyyy HH: mm z".Проблема в том, что функция форматирования после форматирования даты возвращает строку вместо даты.Ниже приведен код кода

    final Date currentDate = new Date();
    final SimpleDateFormat dateFormatter = new SimpleDateFormat("dd.MM.yyyy HH:mm z");
    dateFormatter.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
    String finalDateTime=  dateFormatter.format(currentDate);
    System.out.println(finalDateTime); 

Есть ли альтернативное решение, которое позволяет мне форматировать дату, удерживая меня в этом объекте даты, потому что я исследовал каждую библиотеку дат после Java 8 и до Java 8, этоПохоже, если я хочу отформатировать любой тип даты или dateTime, я должен использовать средство форматирования, которое преобразует данную дату в строку.

Любые альтернативные решения или это невозможно?

1 Ответ

0 голосов
/ 06 июня 2018

Date представляет один момент времени.Вот и все, ни больше, ни меньше. не содержит информацию о часовых поясах.

Wed Jun 06 12:38:15 BST 2018 - это то же самое Date (мгновенное), что и Wed Jun 06 11:38:15 GMT 2018, только в другом часовом поясе.Это как слова "люди" и "гомо сапианы".Они относятся к одному и тому же виду, они просто в другом «формате».

Так что вам не нужно менять дату каким-либо образом.Вам просто нужно отформатировать его по-другому.Вот почему форматеры возвращают String s.Только String s может представлять один конкретный формат даты.

...