2013-10-17 2 views
0

쉽고 분명하지는 않지만, 원하는 형식으로 날짜를 문자열로 변환하는 방법을 알아 내려고 1 시간 쯤 걸렸습니다.Android dateformat 표시 형식이 잘못되었습니다.

String date_begin = "15-10-2013 10:25:31"; 
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // This is the format I want 
Date startDate; 
try { 
    startDate = df.parse(date_begin); 
    String startDateString1 = df.format(startDate); 
    Log.e("New date: ", startDateString1);  
} catch (ParseException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

그리고 출력은 다음과 같다 :

새로운 날짜 (2799) : 0021-04-04 10시 25분 31초

디부 지옥이 표시되는 방법 산출?

답변

3

15-10-2013 10:25:31yyyy-MM-dd HH:mm:ss 형식이 아닙니다. 대신 dd-MM-yyyy HH:mm:ss으로 구문 분석하십시오.

형식을 변경하려는 것 같습니다. 해결책은 2 개의 SimpleDateFormat을 사용하는 것입니다. 하나는 구문 분석 용이고 다른 하나는 출력 형식화 용입니다. 이처럼 :

DateFormat inputFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); 
DateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
startDate = inputFormat.parse(date_begin); 
String startDateString1 = outputFormat.format(startDate); 
Log.e("New date: ", startDateString1); 
+0

나는 그것을 얻지 않는다. yyyy-MM-dd HH : mm : ss가 dd-MM-yyyy HH : mm : ss가 아닌 것을 표시하고 싶습니다. – user2742861

+0

@ user2742861 문자열을 '날짜'로 파싱하는 것이 중요합니다. '날짜'를 '문자열'로 포맷팅하는 것은 또 다른 일입니다. 각각에 대해 'SimpleDateFormat'을 별도로 사용할 수 있습니다. 답변을 업데이트했습니다. – laalto

+0

아직도 이해가 가지 않습니다. 두 개의 SimpleDateFormat을 만들어야한다고 말하고 있습니까? – user2742861

2

다른 형식

SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); 
+0

정답이 아닙니다. – user2742861

0

date_begin의 형식으로 날짜를 구문 분석해야 SimpleDateFormat의 ("YYYY-MM-DD는 HH는 : MM : SS")는 아니다 같은. 둘 다 같은 형식이어야합니다.

+0

당신은 요점을 놓쳤습니다. – user2742861

관련 문제