다음 형식의 문자열로 날짜가 있습니다 "04/02/2011 20:27:05"
. Joda-Time 라이브러리를 사용하고 있으며 DateTime
객체 로 변환하고 싶습니다 . 나는했다 :
DateTime dt = new DateTime("04/02/2011 20:27:05")
하지만 다음과 같은 오류가 발생합니다.
Invalid format: "04/02/2011 14:42:17" is malformed at "/02/2011 14:42:17"
위의 날짜를 DateTime
객체 로 변환하는 방법은 무엇입니까?
답변
사용 DateTimeFormat
:
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime dt = formatter.parseDateTime(string);
답변
나는 이것이 오래된 질문이라는 것을 알고 있지만 JodaTime 2.0부터 하나의 라이너 로이 작업을 수행 할 수 있다고 덧붙이고 싶습니다.
DateTime date = DateTime.parse("04/02/2011 20:27:05",
DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss"));
답변
DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss").parseDateTime("04/02/2011 20:27:05");
답변
의견에서 나는 TimeZone을 추가하고 같은 답변을 선택했습니다.
String dateTime = "2015-07-18T13:32:56.971-0400";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZZ")
.withLocale(Locale.ROOT)
.withChronology(ISOChronology.getInstanceUTC());
DateTime dt = formatter.parseDateTime(dateTime);
답변
형식이 예상 ISO 형식이 아닙니다. 시도해야합니다
DateTimeFormatter format = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime time = format.parseDateTime("04/02/2011 20:27:05");
답변
다음 과 같이 SimpleDateFormat 을 사용할 수도 있습니다 .DateTimeFormat
Date startDate = null;
Date endDate = null;
try {
if (validDateStart!= null) startDate = new SimpleDateFormat("MM/dd/yyyy HH:mm", Locale.ENGLISH).parse(validDateStart + " " + validDateStartTime);
if (validDateEnd!= null) endDate = new SimpleDateFormat("MM/dd/yyyy HH:mm", Locale.ENGLISH).parse(validDateEnd + " " + validDateEndTime);
} catch (ParseException e) {
e.printStackTrace();
}
답변
사용중인 형식에 적합한 DateTimeFormatter 가 필요합니다 . 문서를 작성하는 방법에 대한 지침은 문서를 살펴보십시오.
팔목에서 나는 네가 필요한 것 같아 format = DateTimeFormat.forPattern("M/d/y H:m:s")