IT박스

날짜 문자열을 날짜로 구문 분석하는 방법은 무엇입니까?

itboxs 2020. 7. 27. 07:42
반응형

날짜 문자열을 날짜로 구문 분석하는 방법은 무엇입니까? [복제]


이 질문에는 이미 답변이 있습니다.

아래의 날짜 문자열을 Date객체 로 구문 분석하는 방법은 무엇입니까?

String target = "Thu Sep 28 20:29:30 JST 2000";
DateFormat df = new SimpleDateFormat("E MM dd kk:mm:ss z yyyy");
Date result =  df.parse(target);  

예외 발생 ...

java.text.ParseException: Unparseable date: "Thu Sep 28 20:29:30 JST 2000"
        at java.text.DateFormat.parse(DateFormat.java:337)

패턴이 잘못되었습니다. 3 글자 약어가 있으므로이어야합니다 EEE. 3 글자 약어가 있으므로이어야합니다 MMM. 해당 요일 및 월 약어는 로케일에 따라 SimpleDateFormat다르 므로 로케일을 영어로 명시 적으로 지정 하려고합니다. 그렇지 않으면 영어 자체가 아닌 플랫폼 기본 로케일을 사용합니다.

public static void main(String[] args) throws Exception {
    String target = "Thu Sep 28 20:29:30 JST 2000";
    DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);
    Date result =  df.parse(target);  
    System.out.println(result);
}

여기에 인쇄됩니다

2000 년 9 월 28 일 07:29:30 BOT 2000

내 시간대에 따라 맞습니다.

HH대신 을 사용하고 싶지 않다면 다시 생각해보십시오 kk. 유효한 패턴에 대한 세부 사항은 javadoc읽으십시오 .


다음은 실제 예입니다.

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
import java.util.Date;

public class j4496359 {
    public static void main(String[] args) {
        try {
            String target = "Thu Sep 28 20:29:30 JST 2000";
            DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss zzz yyyy");
            Date result =  df.parse(target);
            System.out.println(result); 
        } catch (ParseException pe) {
            pe.printStackTrace();
        }
    }
}

인쇄합니다 :

Thu Sep 28 13:29:30 CEST 2000

String target = "27-09-1991 20:29:30";
DateFormat df = new SimpleDateFormat("dd MM yyyy HH:mm:ss");
Date result =  df.parse(target);
System.out.println(result); 

이것은 잘 작동합니까?


new SimpleDateFormat("EEE MMM dd kk:mm:ss ZZZ yyyy");

new SimpleDateFormat("EEE MMM dd kk:mm:ss Z yyyy");

여전히 실행됩니다. 그러나 코드에서 예외가 발생하면 도구 또는 jdk 또는 다른 이유 때문입니다. 때문에 나는이 같은 오류가 발생했습니다 내 IDE에 있지만, 이러한 확인하시기 바랍니다 http://ideone.com/Y2cRr 으로 (온라인 IDE)을 ZZZ 와 함께 Z

출력은 : Thu Sep 28 11:29:30 GMT 2000


나는이 문제를 가지고 있었고, 내가 설정 LocaleUS, 그것은 작동합니다.

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

...에 대한 String "Sun Jul 08 00:06:30 UTC 2012"


구문 분석 예외는 검사 예외이므로 @miku가 제안한 것처럼 문자열을 날짜로 구문 분석 할 때 try-catch로 예외를 잡아야합니다 ...

참고URL : https://stackoverflow.com/questions/4496359/how-to-parse-date-string-to-date

반응형