2012-05-28 182 views
-1

我在字符串中獲取日期格式,如下所示。轉換日期對象的字符串格式日期

週五5月18日00:00:00 EDT 2012

我需要將其改爲Date對象。我應該使用什麼方法?

謝謝。

這是我使用的程序。

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

public class DateToString { 
    public static void main(String[] args) { 
     try { 
      DateFormat formatter ; 
      Date date ; 
      formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'EDT' yyyy "); 
      date = (Date)formatter.parse("Fri May 18 00:00:00 EDT 2012"); 
      String s = formatter.format(date); 
      System.out.println("Today is " + s); 
     } catch (ParseException e) { 
      System.out.println("Exception :"+e); 
     } 
    } 
} 

回答

0

使用SimpleDateFormat和實現獲取日期顯示在一個你想要的格式。

String myDateString = "Fri May 18 00:00:00 EDT 2012"; 
SimpleDateFormat dateFormat = new SimpleDateFormat(); 
dateFormat.applyPattern("EEE MMM dd HH:mm:ss z yyyy"); 

try { 
    Date d = dateFormat.parse(myDateString); 
    System.out.println(d); // Fri May 18 00:00:00 EDT 2012 

    String datePattern1 = "yyyy-MM-dd"; 
    dateFormat.applyPattern(datePattern1); 
    System.out.println(dateFormat.format(d)); // 2012-05-18 

    String datePattern2 = "yyyy.MM.dd G 'at' HH:mm:ss z"; 
    dateFormat.applyPattern(datePattern2); 
    System.out.println(dateFormat.format(d)); // 2012.05.18 AD at 00:00:00 EDT 

    String datePattern3 = "yyyy.MM.dd G 'at' HH:mm:ss Z"; 
    dateFormat.applyPattern(datePattern3); 
    System.out.println(dateFormat.format(d)); // 2012.05.18 AD at 00:00:00 -400 
} 
catch (Exception e) { // ParseException 
    e.printStackTrace(); 
} 
+0

那麼你在這裏格式化日期。我有「d」作爲字符串,不會更新日期對象 – Azar

+0

@ user1422029。覈實。 –

+0

謝謝這是工作完美 – Azar

3

看一看:java.text.SimpleDateFormat Java API

SimpleDateFormat dateParser = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy", 
    Locale.US); 
Date date = dateParser.parse("Fri May 18 00:00:00 EDT 2012"); 

更新:提醒自己,語言環境也很重要。

+0

這不是工作的老闆Follwoing我用 – Azar

+0

import java.util.*; import java.text.*; public class DateToString { public static void main(String[] args) { try { DateFormat formatter ; Date date ; formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'EDT' yyyy "); date = (Date)formatter.parse("Fri May 18 00:00:00 EDT 2012"); String s = formatter.format(date); System.out.println("Today is " + s); } catch (ParseException e) {System.out.println("Exception :"+e); } } } Azar

+0

必須指定語言環境的代碼,我更新了這個早期的答案。 –

0

使用SimpleDateFormat有以下模式:

EEE MMM dd HH:mm:ss 'EDT' YYYY 

這並不擔心時區,或者,與時區包括:(未經測試EEE MMM dd HH:mm:ss z YYYY(這是一個小寫z)。請記住,我還沒有測試過(因爲我正在下班回家的路上)。

+0

這會從字面上解析'EDT',而不是作爲時區說明符,不是嗎? – NPE

+0

[code] import java.util。*; import java.text。*; public class DateToString { public static void main(String [] args){ try { DateFormat formatter; 日期日期; formatter = new SimpleDateFormat(「EEE MMM dd HH:mm:ss'EDT'yyyy」); date =(Date)formatter.parse(「Fri May 18 00:00:00 EDT 2012」); String s = formatter.format(date); System.out.println(「Today is」+ s); (System.out.println(「Exception:」+ e);});}} catch(ParseException e) {System.out.println(「Exception:」+ e); } } } – Azar

+0

@aix,是的,這是因爲我試圖找出'z'和'Z'之間。 –

相關問題