답변:
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"를 사용해야 할 수도 있습니다.
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));
}
누군가 가이 작업을 수행하는 더 좋은 방법을 발견하면 입력을 추가하십시오.
LocalDate.parse(rawDate). String.format여기에 완전히 잘못된 형식으로 사용되고 있으며 실제로 첫 번째 문자열을 반환합니다. 는 DateTimeFormatter전혀 사용하지 않는; parse의 static방법이다 LocalDate; formattedDate입니다 하지 포맷 된 날짜조차 String(문제의 요청에 따라)
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'
행복한 코딩! :)
Strings 로 변환하는 방법에 대한 예제도 있습니다 .