Я хочу взять значение даты как 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);
Нужно ли мне также учитывать регион? Пожалуйста, помогите достичь этого. заранее спасибо
Вы форматируете строку до даты, но не выводите результат обратно в строку в желаемом формате
Просто сделай System.out.println(sdf.format(utilDate));
Возможно, вы захотите рассмотреть возможность перехода на классы LocalDate и DateFormatter с Java 8. Это правильный путь. SimpleDateFormat устарел
Я рекомендую вам избегать класса SimpleDateFormat. Это не только давно устарело, но и доставит много хлопот. Сегодня у нас намного лучше в java.time, современный API даты и времени Java.
используйте java8 DateTimeFormatter formatter = DateTimeFormatter.ofPattern ("yyyy-MM-dd");
@ GauravRai1512 Этот стандартный формат ISO 8601 используется по умолчанию в классе LocalDate. Нет необходимости определять шаблон форматирования, нет необходимости использовать DateTimeFormatter. Просто используйте: LocalDate.parse( "2018-01-23" )




Пожалуйста, попробуйте код ниже. Вам также необходимо отформатировать свой объект 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);
}
}
Результат
sdf.parse(strdate)- это просто строка; присвоение егоutilDateпреобразует строку в новый объектDate. Информация о форматировании не передается.