2012-07-07 27 views
1

我有以下代碼日期/日期時間的不同字符串表示轉換成時間戳對象:如何將不同的日期格式轉換爲java中的timestamp對象?

public class GeneralMethods { 

    public static String[] formats = {"dd/mm/yyyy","mm/dd/yyyy hh:mm:ss","E MMM dd HH:mm:ss zzz yyyy"}; 

/** 
* a method to return timestamp object from string date in the formats 
* {"dd/mm/yyyy HH:mm:ss","E MMM dd HH:mm:ss zzz yyyy","dd/mm/yyyy"} 
* @param date: the date to format in string representation 
* @return timestamp object 
*/ 
public static Timestamp timestampFormat(String date) 
{ 
    Date dateObj = new Date(); 
    for(String format: formats) 
    { 
     try 
     { 
      dateObj = new SimpleDateFormat(format).parse(date); 
         System.out.println(dateObj.toString()); // for tracking 

     }catch (ParseException e) 
     { 

     } 
    } 
    return new Timestamp(dateObj.getTime()); 

} 

    // testing 
    public static void main (String args[]) 
    { 
    System.out.println(timestampFormat("05/31/2011 21:37:35")); 
    } 

} 

從這個代碼的輸出是:

Wed Jan 05 00:31:00 GMT 2011 
Mon Jan 31 21:37:35 GMT 2011 
2011-01-31 21:37:35.0 

,你可以看到當月輸出輸入錯誤05/31/2011 21:37:35。這是怎麼發生的?

回答

2

mm是分鐘MM是幾個月,所以您設置的模式分鐘和月份默認設置爲一月。

嘗試改變你的模式"dd/MM/yyyy", "MM/dd/yyyy hh:mm:ss"

+0

我的不好,沒有注意到它。它現在正確工作。謝謝 – Sami 2012-07-07 12:11:19

+1

不客氣:) PS。記得更新你的JavaDoc – Pshemo 2012-07-07 12:12:21

相關問題