2013-12-23 5 views
0

내가 Date 객체를 가지고 작업 할 수 없습니다는 java.text.SimpleDateFormat에 다음과 같이

0,123,812,426,337,572,523,299,122 : 나는이 코드를 시도

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss"); 
sdf.format(d); // d is still Mon Dec 23 14:57:28 PST 2013, no formatting. 

: 14시 57분 28초

(23)는이 코드를 시도

내가 뭘 잘못하고 있는지 말해 주시겠습니까? 검색 좀하지만 그 날짜를 포맷하는 솔루션은 다소 내가 시도한 봤어요. 어떤 도움이라도 대단히 감사합니다.

답변

3

날짜가 무엇이고 format()이 무엇인지 이해하지 못합니다. 날짜는 단지 몇 밀리 초입니다. 아무것도 더. 형식이 없습니다. 날짜 형식을 지정해도 날짜는 전혀 변경되지 않습니다. 사람이 읽을 수있는 날짜 표현 ("2012-11-23"또는 "Monday, April 2")이 포함 된 문자열을 반환합니다.

그래서, 다음과 같은 명령 :

sdf.format(d); 

효과적으로 조작 불능입니다. 반환하는 문자열을 무시합니다.

date.toString()을 호출 할 때 특정 형식을 사용하는 것은 불가능합니다. 대신

DateFormat format = new SimpleDaeFormat("yyyy-MM-dd"); 
System.out.println(format.format(date)); 

이 모든

System.out.println(date); 

사용

을하는, 특정 형식 (예를 들어 yyyy-MM-dd)에 날짜를 표시 할 때 명확하게 자바 독에 설명되어 있습니다. 읽어야합니다.

+0

@blueSky : 내 대답을 무시하고 질문을 완전히 읽지 않았습니다. 이것은 당신이 원하는 것입니다. –

+0

@JB Nizet : 당신 말이 맞아요. Format() 메서드에서 반환 된 String 형식의 Date 가져옵니다. 그러나, 나는 아직도 이유를 모른다 : d = sdf.parse (s); 특급을 던져야합니다.? 다음과 같은 형식의 Date 객체 (String이 아닌)가 필요한 경우 어떻게합니까? 2013-12-23 15:24:21? – blueSky

+0

@blueSky : 그는 Date 객체에 형식이 없음을 설명합니다. –

0

SimpleDateFormat은 날짜 형식을 변경하지 않고 표시 용도로 만 서식이 지정된 날짜를 제공하고 다른 날짜는 표시하지 않습니다.

util.Date에는 항상 SimpleDateFormat을 사용하여 표시하기 위해 원하는대로 서식을 지정할 수있는 한 가지 형식 (긴 밀리 초)이 있습니다. 따라서 어떤 날짜에 상관없이 원하는 포맷으로 포맷 할 수 있습니다.

당신이하려는 일을 왜하는지 설명하면 어쩌면 우리가 더 잘 당신을 지원할 수 있습니다.

+0

나는 실제로 다음과 같은 날짜를 가지고 있습니다 : "Mon Dec 23 15:24:21 PST 2013", 형식이 있어야합니다 : 2013-12-23 15:24:21 데이터베이스 (SQL 서버)에 저장합니다. 유형의 필드 : datetime.필자는 필요한 형식인지 확인하지 못한 채 형식화 된 문자열로이 작업을 수행 할 수 있다고 생각합니다. java.sql.Date -이 때문에 Date 개체를 가져 오는 대신 SimpleDateFormat.parse() 메서드를 사용하려고했습니다. 그럼에도 불구하고, 나는 파스() 메서드가 exp를 던지지 않는다는 것을 어떻게 사용해야하는지 아직 모르겠다. 나는 내가 틀린 일을하고 있다고 생각하며 이것이 왜 특급을 던지는 이유이다. – blueSky

+0

DB에 저장할 때 직접 SQL 또는 최대 절전 모드와 같은 ORM을 사용 하시겠습니까? – IndikaM

+0

알았어, 알았다. 모든 시간과 반응에 감사드립니다. – blueSky