2012-03-13 5 views
0

다음은 간단한 날짜에 대한 내 코드수 없습니다

  1. 2012-03-13
  2. 13:15:00-4:00
  3. 2012/03/13 13:15:00 +0530

하지만 난으로 스피 점점 오/P는 format.Where입니다 형식으로 o/p가 필요합니다. MM/dd/yyyy HH:mm

public class Time { 
     public static void main(String args[]) throws ParseException 
     { 
      SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
      SimpleDateFormat ti=new SimpleDateFormat("MM/dd/yyyy HH:mm"); 
      SimpleDateFormat sdf1=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss Z"); 
      String dt= "2012-03-13T13:15:00-4:00"; 

     String st[]=dt.split("T"); 
     System.out.println(st[0]); 
     System.out.println(st[1]); 

     String time[]= st[1].split("-"); 

     Date fromDt =(Date)sdf.parse(st[0]+" "+time[0]); 



     System.out.println(sdf1.format(fromDt)); 


    } 

} 
+0

은 -0400이 [Z 시간대]입니다 (http://docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html#rfc822timezone)? 또는 주어진 시간에서 빼기를 원하는 시간 (s (m))은 -4시입니다. – JMelnik

+0

자사의 ia 시간대 – Pawan

답변

0

나는 제대로 확실하지 이해하지만, 당신의 마지막 줄이 있어야 할 것 같다, 당신은 그냥 할 수있는 사용자의 입력이 올바르게 포맷 된 경우

System.out.println(ti.format(fromDt)); //prints 03/13/2012 13:15 

(대신 DT에서 -4:00-04:00주의) 이 :

SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); 
SimpleDateFormat output = new SimpleDateFormat("MM/dd/yyyy HH:mm"); 
String dt = "2012-03-13T13:15:00-04:00"; 
Date date = input.parse(dt); 
System.out.println(output.format(date)); //prints 03/13/2012 17:15 with my local timezone 
output.setTimeZone(TimeZone.getTimeZone("GMT-08:00")); 
System.out.println(output.format(date)); //prints 03/13/2012 09:15 

참고 : XXX이 때문에 JDK의 이전 버전과 함께 작동하지 않을 것입니다 자바 7에 도입되었습니다.

+0

나중에 그런 식으로하면 내가 얻을 수 있지만 입력에 제공되는 누락 된 -4 시가있을 것입니다. i/p (문자열 dt)를 한 번 확인하십시오 – Pawan

+0

마지막 줄 인쇄는 어떻게 되나요? '03/13/2012 17 : 15'? – assylias

+0

ya ur correct 나는 필요하다 03/13/2012 09:15 – Pawan

0

형식으로 'T'리터럴을 사용하면 SimpleDateFormat이 구문 분석을 수행합니다. 다음은 java 6에서 작동하고 -4.00을 처리하는 솔루션입니다.이 메서드는 줄 끝의 정크를 분리하고 TimeZone에 변환을 요청하여 SimpleDateFormat에서 timeZone을 사용합니다.

SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
SimpleDateFormat output = new SimpleDateFormat("MM/dd/yyyy HH:mm"); 

String dt = "2012-03-13T13:15:00 -4:00"; 

Pattern pattern = Pattern 
     .compile("\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\s*(.*)"); 
Matcher m = pattern.matcher(dt); 
if (m.find()) { 
    String zoneJunk = m.group(1); 
    TimeZone zone = TimeZone.getTimeZone("GMT" + zoneJunk); 
    input.setTimeZone(zone); 
} 

Date date = input.parse(dt); 
System.out.println(output.format(date)); // prints 03/13/2012 17:15 
+0

여기에 시간대가 필요합니다. 2012 년 3 월 13 일 9시 15 분 – Pawan

+0

@ yyyi777으로 업데이트됩니다. 시간대를 처리하도록 업데이트되었습니다. – Adam