2013-07-08 4 views
2

저는 TimeStamp '2013-06-24 10 : 46 : 11.0'을 가지고 있으며, .0 부분을 잘라 내야합니다. 그래서 SimpleDateFormat을 사용하여 구문 분석했습니다 String으로 변환하고 다시 구문 분석하여 첫 번째 변환은 괜찮 았지만 두 번째 문자열 (현재까지의 문자열)은 java 날짜 시간을 발생시킵니다.특정 형식으로 날짜 문자열을 파싱하십시오.

public void convert(Object object) { 
    Date date; 
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    date = object().getDate(); 
    String formated = format.format(date); 
    try { 
     date = format.parse(formated); 
    } catch (ParseException ex) { 
     Logger.getLogger(DlgConsultaFactura.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

내가 기대하는 것은이 2013년 6월 24일 10시 46분 11초 같은 일이다,하지만 내가 가진 것은이 날짜 월 6월에게

2013 (24) 중부 서머 타임 10시 46분 11초입니다

도움이 될 것입니다. 감사.

+1

@Andeas : 그는 객체를 사용하지 않으며 메소드 참조 인 object()를 사용합니다. 그리고 아마도 버그 일 가능성이 높습니다. –

+0

@Erik yepp, 그것을 인정했습니다 - 내 코멘트를 삭제했습니다 ... 그럼에도 불구하고 그것은 :) object() 메소드를 가지고 있지 않으면 ... :) –

+0

예. 또한이 메서드는 아무 것도 반환하지 않으며 잘못된 입력 매개 변수를 사용합니다. 나는 이것이 효과가 있다고 생각하지 않는다. –

답변

2

Mon Jun 24 10:46:11 CDT 20132013-06-24 10:46:11은 실제로 동일한 값입니다. Mon Jun 24 10:46:11 CDT 2013은 기본 로케일 당입니다.

날짜의 내부 표시와 표시 형식이 혼란스러워합니다.

2013-06-24 10:46:11에서 인쇄하려면 동일한 SimpleDateFormat 개체를 다시 사용할 수 있습니다.

DateFormat#format(Date)을 사용하여 날짜를 인쇄하거나 원하는 형식, 즉 "yyyy-MM-dd HH:mm:ss"으로 문자열 표현을 반환 할 수 있습니다. 이런 식으로 뭔가 :

String myDt = format.format(date); 
// 2013-06-24 10:46:11 
+0

하지만 문제는 내가 SimpleDateformat을 다시 사용하면 String을 반환 할 것이므로 날짜에 올바른 형식이 필요하다는 것입니다. – Blackmore

+0

@Blackmore : Pls가 내 대답의 첫 번째 줄을 읽었습니다. 'parse' 메쏘드의 반환 값으로 당신은 이미'2013-06-24 10 : 46 : 11' 또는'Mon Jun 24 10:46:11 CDT 2013'으로 날짜를 얻었습니다. 두 값은 동일합니다. – anubhava

+0

나는 내가 잘못 이해했다고 생각한다. 2013-06-24 10:46:11, Mon Jun 24 10:46:11 CDT 2013은 동일하다. 문제는 반환하는 형식이다. 2013-06-24 10:46:11) 나는 inmediatley를 Date로 구문 분석하려고하지만 다른 형식을 반환 할 때 화면에 표시되는 올바른 형식이 필요합니다. 도와 주셔서 정말 고맙습니다. – Blackmore

0

아니 가장 좋은 방법이지만 날짜 단지 문자열 표현을 원하는 경우 신속하고 쉬운 ...

formated = formated.substring(0, formated.length()-2); 

:

+0

그런 다음 어떻게 형식을 유지하는 날짜로 구문 분석 할 수 있습니까? 도와 주셔서 감사합니다. – Blackmore

+1

@Blackmore 형식은 '문자열'로 표현 된 날짜가있을 때만 의미가 있습니다. 'String'을'Date'로 파싱하면, "format"에 대해 말하는 것이 더 이상 의미가 없습니다. –

+0

꽤 좋은 설명입니다. 감사. – Blackmore

0

DateFormat의 예 SimpleDateFormat의 필요에 따라 날짜 형식을 지정합니다.

구문 분석이 전달 (귀하의 경우 또는 타임 스탬프) 날짜 문자열 표현을 반환합니다. 형식이 전달 된 날짜 객체의 문자열 표현을 반환합니다. 두 경우

을 동일한 날짜를 참조 단지 표현은 다르다.

+0

아시다시피, 나는 내 날짜의 특정 형식을 얻으려고합니다. 도와 주셔서 감사합니다. – Blackmore

관련 문제