Преобразование String Date в формате yyyy-MM-dd в формат Java UtilDatein yyyy-MM-dd

Я хочу взять значение даты как String в формате yyyy-MM-dd и вернуть дату использования jabva в том же формате. для этого я использую приведенный ниже код, но результат будет следующим: «среда, 18 сентября, 00:00:00 CEST 2013».

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String  strdate = "2013-09-18";
    Date utilDate = sdf.parse(strdate);
    System.out.println(utilDate);

Нужно ли мне также учитывать регион? Пожалуйста, помогите достичь этого. заранее спасибо

Результат sdf.parse(strdate) - это просто строка; присвоение его utilDate преобразует строку в новый объект Date. Информация о форматировании не передается.

MTCoster 14.11.2018 18:09

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

csalmhof 14.11.2018 18:10

Просто сделай System.out.println(sdf.format(utilDate));

Thomas Fritsch 14.11.2018 18:17

Возможно, вы захотите рассмотреть возможность перехода на классы LocalDate и DateFormatter с Java 8. Это правильный путь. SimpleDateFormat устарел

SamwellTarly 14.11.2018 18:26

Я рекомендую вам избегать класса SimpleDateFormat. Это не только давно устарело, но и доставит много хлопот. Сегодня у нас намного лучше в java.time, современный API даты и времени Java.

Ole V.V. 14.11.2018 18:47

используйте java8 DateTimeFormatter formatter = DateTimeFormatter.ofPattern ("yyyy-MM-dd");

GauravRai1512 14.11.2018 18:49

@ GauravRai1512 Этот стандартный формат ISO 8601 используется по умолчанию в классе LocalDate. Нет необходимости определять шаблон форматирования, нет необходимости использовать DateTimeFormatter. Просто используйте: LocalDate.parse( "2018-01-23" )

Basil Bourque 14.11.2018 21:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
176
1

Ответы 1

Пожалуйста, попробуйте код ниже. Вам также необходимо отформатировать свой объект simpleDateFormat и передать в него объект utilDate, чтобы создать указанную вами отформатированную дату.

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTest {

     public static void main(String[] args) throws ParseException{
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String  strdate = "2013-09-18";
            Date utilDate = sdf.parse(strdate);
            String date=sdf.format(utilDate );
            System.out.println(date);
 }
}

Мы также можем реализовать через Java8, как показано ниже:

import java.text.ParseException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DateTest {

     public static void main(String[] args) throws ParseException{
         String  strdate = "2013-09-18";
            DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");
            LocalDate date = LocalDate.parse(strdate, formatter);
            System.out.println(date.format(formatter));
}

}

или вы также можете использовать только LocalDate для изменения в java-утилите, как показано ниже.

import java.time.LocalDate;

public class TestCircle {

    public static void main(String args[]){
        String  strdate = "2013-09-18";
        LocalDate date = LocalDate.parse(strdate);
        System.out.println(date);
    }

}

Другие вопросы по теме