2012-04-19 44 views
0

我嘗試這樣做,將解析長millesecond值轉換爲Date對象格式的函數:解析長到Date對象格式

public static Date parseDate(long millisec, String format) { 
    try { 
     SimpleDateFormat formatter = new SimpleDateFormat(format); 
     Date formattedDate = new Date(millisec); 
     formatter.format(formattedDate); 
     return formattedDate; 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return null;  
} 

我插入函數的格式是這樣的: 「dd-MM-yyyy HH-mm:ss」 而我仍然得到這個結果格式:「Thu Apr 19 19:51:22 SGT 2012

任何想法,爲什麼我會得到這種結果?

回答

1

僅當您輸出日期(實際上用於將日期轉換爲字符串)時應用該格式。它不會更改日期的內部表示。

對於您的情況,formattedDate對象不會受到format的任何影響。

辦法看到字符串表示是這樣的:

String dateString = formatter.format(formattedDate); 
System.out.println(dateString); 

這就像一個數的基礎。您有許多不同的可視化數字,如101(2)5(10),但它們僅在顯示數字時纔有意義。否則,當您更改基本號碼時,號碼本身的值不會更改。

0

您的問題是formatter.format(...)返回String,這是你應該在你的函數返回的內容(你實際上會返回Date實例)

0

這條線:

formatter.format(formattedDate); 

返回一個字符串(格式化日期)。你返回的是Date對象(它本身沒有格式)。您應該返回格式化程序返回的字符串。

0

您正在返回Date對象。日期是某個時間點的抽象表示,沒有任何有關格式的信息。您需要返回從格式化程序獲得的字符串 - 這是格式化的時間表示形式(但另一方面不包含有關時間的信息 - 您必須解析它以獲取它所代表的Date對象)。

0

A Date沒有自己的格式,它是格式化的SimpleDateFormat

當你打電話給formatter.format(formattedDate)它會給你一個String這是格式化的,但你忽略了返回的值。

1

你回你的init日期......將這個來代替:

return formatter.format(formattedDate); 
0

要返回的日期對象,但你需要的是從使用毫秒創建的創建日期對象返回格式化的日期字符串值。

String dateStr = formatter.format(formattedDate); return dateStr;