Как изменить формат строки на дату - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть эта строка: 2018-09-22 10: 17: 24.772000 Я хочу преобразовать ее в Дата:

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");

    String sdate = "2018-09-22 10:17:24.772000";
    Date dateFrom = simpleDateFormat.parse(sdate);

, но она показывает: Сб 22 сентября 10:17:24 GMT + 03: 30 2018

Ответы [ 3 ]

0 голосов
/ 22 сентября 2018

Надеюсь, это поможет вам

public class Utils {

    public static void main(String[] args) {

        String mytime="2018-09-22 10:17:24.772000";
        SimpleDateFormat dateFormat = new SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss.SSSSSS");

        Date myDate = null;
        try {
            myDate = dateFormat.parse(mytime);

        } catch (ParseException e) {
            e.printStackTrace();
        }

        SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd");
        String finalDate = timeFormat.format(myDate);

        System.out.println(finalDate);
    }
}
0 голосов
/ 22 сентября 2018

Вот что вы должны сделать вместо этого: вы печатаете сам объект даты, вы должны напечатать его формат.

Я предоставлю код со старым API даты и новым локальным API даты:

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");

    String sdate = "2018-09-22 10:17:24.772000";
    Date dateFrom = simpleDateFormat.parse(sdate);

    System.out.println(dateFrom); // this is what you do
    System.out.println(simpleDateFormat.format(dateFrom)); // this is what you should do

    // below is from new java.time package

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
    System.out.println(LocalDateTime.parse(sdate, formatter).format(formatter));

вывод:

Sat Sep 22 10:30:16 EET 2018
2018-09-22 10:30:16.000000

2018-09-22 10:17:24.772000
0 голосов
/ 22 сентября 2018

Похоже, вы преобразовали его в дату.Какой ваш желаемый результат?Я подозреваю, что вы хотите сделать, это создать другой простой формат даты, который показывает ваш ожидаемый формат, а затем использовать simpledateformat2.format(dateFrom)

Я должен также указать, основываясь на прошлом опыте, что вы должны добавить Locale к вашему простомуформаты даты, иначе устройство с другим языком может не выполнить этот код

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS", Locale.US);

...