나는 String처럼 보이는 Date를 가지고 있으며 그것을 파싱하고 싶습니다.
날짜는 여러 가지 패턴 중 하나처럼 보일 수 있습니다.parse joda-time
MM/dd/yy
또는
HH:mm
또는
MM/dd/yy HH:mm
또는 구문 분석 할 수
MM/dd/yy HHmm
내가 코드를
, 많은 패턴public DateTime parseDateTime(final String text)
{
if (StringUtils.isEmpty(text)) return null;
int field = 0;
DateTime dateTime = null;
IllegalArgumentException exception = null;
for (; field < FIELD_COUNT; ++field)
{
if (null != formatters[field])
{
try
{
dateTime = formatters[field].parseDateTime(text);
break;
}
catch (final IllegalArgumentException e)
{
exception = null != exception ? exception : e;
}
}
}
if (dateTime == null)
{
throw exception;
}
return dateTime;
}
formatters[]
는
DateTimeFormatter
의 배열이 다른 방법을 제안 할 수있다? 더 간단함
인터넷 검색 나에게 [POJava] (http://www.pojava.org)라는 라이브러리를 알려주는 휴리스틱 날짜/시간 파서가 포함되어 있습니다. org/site/pojava-2.8.0/apidocs/org/pojava/datetime/DateTime.html을 참조하십시오. 이 작업을 수행하는 또 다른 라이브러리는 파이썬의 [dateutil] (http://labix.org/python-dateutil)이지만 분명히 노력해야 할 가치가없는 것을 포팅해야합니다. – millimoose
당신의 접근 방식은 읽기 쉽고 유지 보수가 가능합니다. '포맷터'를 초기화하면 지원되는 패턴을 한눈에 알 수 있습니다. 다른 코드를 변경하지 않고 패턴을 추가하고 제거 할 수 있습니다. 당신이 지금 가지고있는 것과 '단순한'대안을 비교하는 것은 가치가 있습니다. –