2013-10-06 64 views
2

我想問一下java.util.Date的用法。這裏是我的示例類是否有可能獲得特定格式的java.util.Date對象?

  public class DateConverter { 
      public static void main(String[] args) { 
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy"); 
        Date today = new Date(); 
        String dateAsString_format = simpleDateFormat.format(today); 
        System.out.println("Formatted Date String (String datatype): " + dateAsString_format); 
        Date parsedDate = null; 
        try { 
         parsedDate = simpleDateFormat.parse(dateAsString_format); 
        } catch (ParseException e) { 
         e.printStackTrace(); 
        } 
        System.out.println("Parse Date (Date datatype): " + parsedDate); 
       } 
      } 

我的輸出

  Formatted Date String (String datatype): 06/10/2013 
     Parse Date (Date datatype): Sun Oct 06 00:00:00 MMT 2013 

但我想獲得以下輸出

  Formatted Date String (String datatype): 06/10/2013 
     Parse Date (Date datatype): 06/10/2013 

是否有可能獲得與特定的格式Date對象?

+0

如果你想要一個特定的格式,使用SimpleDateFormat。這就是它的目的。日期僅基於您的區域設置擁有默認的平臺格式。 –

回答

3

是否有可能獲得特定格式的日期對象?

Date沒有任何格式。它表示自紀元以來的毫秒數。您只使用SimpleDateFormat獲得格式化的字符串,您已經這樣做了。

打印Date調用覆蓋的Date#toString()方法,該方法使用默認格式,其中打印每個Date

這裏是Date#toString()源的樣子:

public String toString() { 
    // "EEE MMM dd HH:mm:ss zzz yyyy"; 
    BaseCalendar.Date date = normalize(); 
    StringBuilder sb = new StringBuilder(28); 
    int index = date.getDayOfWeek(); 
    if (index == gcal.SUNDAY) { 
     index = 8; 
    } 
    .... // some more code 
} 

所以使用的格式是"EEE MMM dd HH:mm:ss zzz yyyy"

4

是,延長Date添加格式字段並覆蓋toString方法,一些沿

public class DateWithFormat extends Date { 
    String format; // Assign as appropriate 
    public String toString() { 
    return new SimpleDateFormat(format).format(this)); 
    } 
} 
相關問題