2011-12-21 9 views
2

문자열 형식 (String str = "Nov 10, 1980")에서 "Nov 10,1980"으로 날짜 형식을 사용하고 있는데이를 1980-11-10로 변환하려고합니다. 어느 누구든지 자바를 사용하여 어떻게하는지 말해 줄 수 있습니다. 사전에날짜 형식을 변환하는 방법

감사

+0

thnaks 모두, 난 그냥 내 질문에, Joda 시간에 대한 – user972590

답변

2

먼저 원본 텍스트 형식에서 구문 분석 한 다음 결과가 원하는 형식으로 서식을 지정해야합니다. 이 경우 SimpleDateFormat 또는 Joda Time (일반적으로 더 나은 날짜/시간 API)을 사용할 수 있습니다.

SimpleDateFormat를 사용

샘플 코드 :

import java.text.*; 
import java.util.*; 

public class Test { 

    public static void main(String[] args) throws Exception {   
     String inputText = "Nov 10,1980"; 

     TimeZone utc = TimeZone.getTimeZone("UTC"); 

     // Or dd instead of d - it depends whether you'd use "Nov 08,1980" 
     // or "Nov 8,1980" etc. 
     SimpleDateFormat inputFormat = new SimpleDateFormat("MMM d,yyyy", 
                  Locale.US); 
     inputFormat.setTimeZone(utc); 

     SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd", 
                  Locale.US); 
     outputFormat.setTimeZone(utc); 

     Date parsed = inputFormat.parse(inputText); 
     String outputText = outputFormat.format(parsed); 

     System.out.println(outputText); // 1980-11-10 
    } 
} 

하는 것으로

: 내가 명시 적으로 사용하는 로케일을 지정한

  • ; 그렇지 않으면 프랑스어 기본 로케일로 시스템의 텍스트를 구문 분석하려고하면 프랑스어 달 이름을 사용하여 구문 분석을 시도합니다.
  • 내가 명시 적으로 (특정 값이 디폴트의 타임 존의 모호한 또는 존재하지 않는 수) 절약 시간제 문제있는 일광
+1

+1을 확인하시기 바랍니다 편집 할 수 있습니다. – lsoliveira

1

사용이

을 피하기 위해 UTC로 시간대를 설정 한
  Date date = new Date(); 
    SimpleDateFormat sdf; 
    sdf = new SimpleDateFormat("yyyy-MM-DD"); 
    System.out.println(sdf.format(date)); 
0
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
String req_date = dateFormat.format(DATE) 
System.out.println(req_date) 
0

두 개의 SimpleDateFormat을 사용할 수 있습니다. 하나는 구문 분석하고 하나는 형식화합니다. 예를 들어 :

public static void main(String[] args) throws ParseException { 
    DateFormat parseFormat = new SimpleDateFormat("MMM dd,yyyy"); 
    DateFormat displayFormat = new SimpleDateFormat("yyyy-MM-dd"); 

    Date date = parseFormat.parse("Nov 10,1980"); 
    String s = displayFormat.format(date); 
    System.err.println(s); 
} 
1
try { 
    SimpleDateFormat sdf1 = new SimpleDateFormat("MMM dd, yyyy"); 
    Date strDt = sdf1.parse("Nov 10, 1980"); 
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); 
    System.out.println(sdf2.format(strDt)); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
0

사용 SimpleDateFormat의 결과를 얻기 위해 당신은

관련 문제