String (дд-мм-гггг чч: мм) до даты (гггг-мм-дд чч: мм) | Джава

Обновить

December 2018

Просмотры

65.6k раз

3

У меня есть строка в «ДД-ММ-ГГГГ ЧЧ: мм» и нужно преобразовать его в объект даты в формате «гггг-мм-дд чч: мм».

Ниже приведен код, я использую для преобразования

oldScheduledDate = "16-05-2011 02:00:00";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date oldDate = (Date)formatter.parse(oldScheduledDate);

Теперь, когда я печатаю oldDate, я получаю

Sat Nov 01 02:00:00 GMT 21, Что совершенно неправильно, что я здесь делаю неправильно?

6 ответы

5

«гггг-ММ-дд» , даже не выглядят так же , как «16.05.2011». Хм. А почему бы не?

подсказки:

  1. DateFormat очень буквально. Он принимает формат, определенный и не использует его - ничего фантазии.
  2. Процесс: Input Дата String -> Convert (С Input Format) -> Дата -> Convert (С Output Format) -> Вывод строки даты
  3. Код в посте содержит выходной формат, но нет импорта формата.
1

Простой подход, чтобы поменять вокруг букв.

String s = "16-05-2011 02:00:00";
String newDate=s.substring(6,10)+s.substring(3,6)+'-'+s.substring(0,2)+s.substring(10);
5

«гггг-ММ-дд» , даже не выглядят так же , как «16.05.2011». Хм. А почему бы не?

подсказки:

  1. DateFormat очень буквально. Он принимает формат, определенный и не использует его - ничего фантазии.
  2. Процесс: Input Дата String -> Convert (С Input Format) -> Дата -> Convert (С Output Format) -> Вывод строки даты
  3. Код в посте содержит выходной формат, но нет импорта формата.
5

«гггг-ММ-дд» , даже не выглядят так же , как «16.05.2011». Хм. А почему бы не?

подсказки:

  1. DateFormat очень буквально. Он принимает формат, определенный и не использует его - ничего фантазии.
  2. Процесс: Input Дата String -> Convert (С Input Format) -> Дата -> Convert (С Output Format) -> Вывод строки даты
  3. Код в посте содержит выходной формат, но нет импорта формата.
0

вам нужно использовать форматировщик, когда вы хотите вывести форматированный дату

public static void main(String[] args) throws ParseException {
    String oldScheduledDate = "16-05-2011 02:00:00";
    DateFormat oldFormatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date oldDate = (Date)oldFormatter .parse(oldScheduledDate);
    System.out.println(formatter.format(oldDate));
}

20
    String dateSample = "10-01-2010 21:10:05";

    String oldFormat = "dd-MM-yyyy HH:mm:ss";
    String newFormat = "yyyy-MM-dd HH:mm:ss";

    SimpleDateFormat sdf1 = new SimpleDateFormat(oldFormat);
    SimpleDateFormat sdf2 = new SimpleDateFormat(newFormat);


    try {
        System.out.println(sdf2.format(sdf1.parse(dateSample)));

    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

Связанные вопросы