2017-04-05 2 views
3

나는 JodaTime을 사용하여 계정 생성 날짜와 시간을 얻고 있습니다. 나는이를 얻을 때LocalDateTime 문자열에서 LocalDate까지 Joda-time

2017-04-05T12:38:35.585 

은 내가 LOCALDATE에 문자열에서이 포맷을 할 수있는 방법을 주위를 둘러 보았다했습니다 있도록 문자열로 내 데이터베이스에 저장하지만 난했습니다 아무것도에서 성공적인되지 않았습니다되는 형식 온라인에서 찾았습니다. 내 다음 단계는 T를 찾아서 모든 것을 제거 할 때까지 문자열을 반복하는 제 의견으로는 끔찍한 해결책입니다. 그래서

2017-04-05. 

왼쪽 해요 그러나 이상적으로 가능한 것은 LocalDateTime를 얻을 수

05/04/2017 

답변

2

사용 ISODateTimeFormat로 날짜를이에서 LocalDate를 얻을. 내가 joda 시간 2.7을 사용하고 Locale

String input="2017-04-05T12:38:35.585"; 

LocalDateTime ldt = ISODateTimeFormat.localDateOptionalTimeParser() 
        .withLocale(Locale.ENGLISH) 
        .parseLocalDateTime(input); 

System.out.println(ldt.toLocalDate());//prints 2017-04-05 
+0

감사합니다. – Dannys19

1

권리를 사용하기주의 .

LocalDateTime 클래스에는 String을 취하고 구문 분석하는 생성자가 있습니다. 그럼 당신은 당신이 원하는 패턴 toString() 메소드를 호출

String input = "2017-04-05T12:38:35.585"; 
LocalDateTime d = new LocalDateTime(input); 
System.out.println(d.toString("dd/MM/yyyy")); 

출력 :

05/04/2017 

: 당신은 또한 구문 분석 ISODateTimeFormat를 사용할 수있는 대신 toString()DateTimeFormatter 출력을 얻을 :

LocalDateTime d = ISODateTimeFormat.localDateOptionalTimeParser().parseLocalDateTime(input); 
DateTimeFormatter fmt = DateTimeFormat.forPattern("dd/MM/yyyy"); 
System.out.println(fmt.print(d)); 

출력이 동일합니다.

+0

고마워, 나는 둘 다 해답을 모두 시도하고 둘 다 일했다 :) – Dannys19