2014-10-14 3 views
0

날짜를 Java의 Unix Timestamp로 변환하려고합니다. 제 날짜에 대한 예는 "금 6월 5일 태평양 서머 타임 15시 53분 7초 2009"Java의 날짜 형식 구문 분석

내 코드는 다음과 같습니다

DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); 
Date date = dateFormat.parse(dateString); 
long unixTime = (long) date.getTime()/1000; 
System.out.println("Unix Time: " + unixTime); 
double unixFloat = unixTime; 

주어진 오류는 다음과 같습니다

Exception in thread "main" java.text.ParseException: Unparseable date: "Fri Jun 05 15:53:07 PDT 2009" 

올바른 패턴은 무엇입니까?

+0

다우 몬의 DD HH : MM : SS는 ZZZ를 YYYY http://docs.oracle.com/javase/7/docs/api/java/util/Date.html#toString에있어서() – EpicPandaForce

+0

우르 코드 나를 위해 일합니다. 아마도 다른 값에'dateString'을 할당 할 것입니다. – blackSmith

답변

2

이런 종류의 문제.

예 : Javadoc에서

DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy" 
                    ,Locale.US); 

.

SimpleDateFormat은 지역화 된 날짜와 시간 패턴 문자열도 지원합니다. 이 문자열에서 위에 설명 된 패턴 문자는 이 다른 로켈 종속 패턴 문자로 바뀔 수 있습니다. SimpleDateFormat은 패턴 문자보다 다른 문자 텍스트의 지역화를 처리하지 않습니다. 그것은 클래스의 클라이언트에게 달려 있습니다.

+0

감사합니다. – user1684645

+0

@ user1684645 당신은 오신 것을 환영합니다. –

1

이 아마 로케일 문제 - Fri 금요일은 영어로하지만, 예를 들어 프랑스어 또는 독일어 :

당신은 당신이 직면 할 수있는 당신이 로케일을 설정되지 않은 경우 Locale, 일부의 경우를 설정해야
DateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);