java.text.SimpleDateFormat을 사용하여 String 형식의 날짜를 java.util.Date로 변환하려고했지만 올바른 출력을 제공하지 않습니다. 도와주세요!
내 입력은 Django 날짜에 의해 생성됩니다. '2014-01-20T07 : 17 : 06.150995 + 00 : 00'
하지만 'Mon Jan 20 15:19:36 GMT + 08 : 00 2014'대신 'Mon Jan 20 15:17:06 GMT + 08 : 00 2014'가 표시됩니다.
내 테스트 코드는 다음과 같습니다.
String s = "2014-01-20T07:17:06.150995+00:00";
SimpleDateFormat sdf;
String fmt = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ";
sdf = new SimpleDateFormat(fmt, Locale.US);
String result = "";
try {
Date date = sdf.parse(s);
Log.d(Constants.LOG_TAG, date.toString());
result = date.toString();
} catch (Exception e) {
Log.d(Constants.LOG_TAG, "date formatting error" + e.getMessage());
}
Log.d(Constants.LOG_TAG, "date test >> " + result);
보시다시피 두 날짜는 2.5 분 차이가 있습니다.
이것은 마이크로 초를 밀리 초로 구문 분석하기 때문에 발생합니다. 이렇게하면 결과에 150000 밀리 초 또는 2.5 분이 추가됩니다.
를 사용하여 마이크로 초로 날짜 문자열을 구문 분석하는 표준 방법은 없습니다 SimpleDateFormat
. 소스 문자열을 다른 형식으로 가져올 수없는 경우 직접 수행해야합니다.
날짜가 항상 정확히이 형식이면 다음과 같이 할 수 있습니다.
String dateWithoutMicros = s.substring(0, s.length() - 9) + s.substring(s.length() - 6);
Date date = sdf.parse(dateWithoutMicros);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다