[java] LocalDate를 문자열로 포맷하는 방법은 무엇입니까?

1988-05-05를 표시 할 때 date라는 LocalDate 변수가 있는데 이것을 1988 년 5 월 5 일로 인쇄되도록 변환해야합니다.



답변

Java 8의 새로운 LocalDate로 시작하면 SimpleDateFormat이 작동하지 않습니다. 내가 볼 수 있듯이 DateTimeFormatter, http://docs.oracle.com/javase/8/docs/api/java/ 를 사용해야합니다. time / format / DateTimeFormatter.html .

LocalDate localDate = LocalDate.now();//For reference
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd LLLL yyyy");
String formattedString = localDate.format(formatter);

1988 년 5 월 5 일을 인쇄해야합니다. 하루와 그 다음 달의 기간을 얻으려면 “dd’.LLLL yyyy”를 사용해야 할 수도 있습니다.


답변

다음과 같이 짧을 수 있습니다.

LocalDate.now().format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));


답변

System.out.println(LocalDate.now().format(DateTimeFormatter.ofPattern("dd.MMMM yyyy")));

위의 답변은 오늘 그것을 보여줍니다.


답변

ProgrammersBlock 게시물의 도움으로 이것을 생각해 냈습니다. 내 요구는 약간 달랐습니다. 문자열을 가져 와서 LocalDate 객체로 반환해야했습니다. 이전 Calendar 및 SimpleDateFormat을 사용하는 코드를 받았습니다. 좀 더 최신 상태로 만들고 싶었습니다. 이것이 내가 생각해 낸 것입니다.

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


    void ExampleFormatDate() {

    LocalDate formattedDate = null;  //Declare LocalDate variable to receive the formatted date.
    DateTimeFormatter dateTimeFormatter;  //Declare date formatter
    String rawDate = "2000-01-01";  //Test string that holds a date to format and parse.

    dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE;

    //formattedDate.parse(String string) wraps the String.format(String string, DateTimeFormatter format) method.
    //First, the rawDate string is formatted according to DateTimeFormatter.  Second, that formatted string is parsed into
    //the LocalDate formattedDate object.
    formattedDate = formattedDate.parse(String.format(rawDate, dateTimeFormatter));

}

누군가 가이 작업을 수행하는 더 좋은 방법을 발견하면 입력을 추가하십시오.


답변

joda lib에 대해 LocalDate를 형식화하는 기본 제공 방법이 있습니다.

import org.joda.time.LocalDate;

LocalDate localDate = LocalDate.now();
String dateFormat = "MM/dd/yyyy";
localDate.toString(dateFormat);

아직없는 경우-build.gradle에 추가하십시오.

implementation 'joda-time:joda-time:2.9.5'

행복한 코딩! 🙂


답변

이 작업을 수행하는 가장 좋은 방법은 다음을 사용 SimpleDateFormat하는 것입니다.

SimpleDateFormat sdf = new SimpleDateFormat("d MMMM YYYY");
Date d = new Date();
sdf.format(d);

변수에 날짜가 있음을 알았습니다.

sdf.format(variable_name);

건배.


답변