programing

날짜 문자열을 날짜로 구문 분석하는 방법

goodjava 2022. 10. 31. 21:15

날짜 문자열을 날짜로 구문 분석하는 방법

다음 날짜 문자열을 어떻게 해석하면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이러한 일 및 월의 약어는 로케일에 민감하기 때문에,SimpleDateFormatlocal을 영어로 변환하지 않으면 플랫폼 기본 로케일이 사용됩니다.기본 로케일은 영어 자체가 아닐 수 있습니다.

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

제 시간대대로라면 맞습니다.

만약 당신이 이 제품을 사용하고 싶지 않다면, 저도 다시 생각해보고 싶습니다.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에서도 같은 에러가 발생했기 때문에, ZZZ와 Z포함한 http://ideone.com/Y2cRr을 확인해 주세요.

출력은 다음과 같습니다.Thu Sep 28 11:29:30 GMT 2000

난 이 문제가 있었고, 그리고 난 그 문제를Locale로.US그럼 되겠네요.

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가 제안한 바와 같이 Strings to Dates를 해석할 때 try-catch로 검출해야 합니다.

언급URL : https://stackoverflow.com/questions/4496359/how-to-parse-date-string-to-date