2009-02-12 128 views
2

有沒有辦法格式化一個日期以使mmm:ss代替hh:mm:ss?基本上,7:15:28應該顯示爲435:28。自定義日期格式mmm:ss

SimpleDateFormat類不支持這種格式是否有一個或我將不得不自己實現一個變體?

回答

4

你必須自己實現它,但是你應該記住,實現Formatter並不是一項簡單的任務,因爲它有很多l10n的考慮因素。

+0

這是據你所知,或者你確定沒有可以處理這種格式的軟件包嗎? – 2009-02-12 17:22:48

1

您可以使用Joda Time構建自定義格式器。隨着DateTimeFormatterBuilder類,你至少可以表明,每天的分鐘:

import org.joda.time.format.DateTimeFormatter; 
import org.joda.time.format.DateTimeFormatterBuilder; 

DateTimeFormatter customFormat = new DateTimeFormatterBuilder() 
     .appendMinuteOfDay(1) 
     .appendLiteral(':') 
     .appendSecondOfMinute(2) 
     .toFormatter(); 
System.out.println(customFormat.print(System.currentTimeMillis())); 
2

如果你想要做的是格式的日期到您指定的格式(與日期包含的任何其他部分),你只需這很簡單:

public String format(Date date) {  
     Calendar cal = new GregorianCalendar(); 
     cal.setTime(date); 
     return cal.get(Calendar.HOUR) * 60 + cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND);  
    }