2011-04-22 28 views
8

我做了一個應用程序,我需要在24小時格式執行日期轉換。 這是我的代碼。24小時制不能在dateformat工作android

GregorianCalendar c = new GregorianCalendar(Locale.GERMANY); 
      c.set(2011, 04, 29,0,0,0); 
      String cdate = (String) DateFormat.format("yyyy-MM-dd HH:mm:ss", c.getTime()); 
      Log.i(tag,cdate); 

現在當我檢查這裏我的LOG是輸出:

12月4日至22日:44:15.956:INFO/GridCellAdapter(30248):2011-04-29 HH:00:00

爲什麼小時字段沒有設置。我在製作日曆對象時顯式傳遞了0,但仍然在LOG中顯示HH。 我已經嘗試過傳球,這是設置,但HH沒有被設置。

可能是什麼問題?

預先感謝您。

回答

10

嘗試使用SimpleDateFormat,它是DateFormat的一個子類。這可能會糾正你遇到的問題。

例如打印當前日期時間

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_H-mm-ss",Locale.US); 
String formattedDateString = dateFormat.format(new java.util.Date()); 
// result is something like "2013-02-14_18-44-15" 
+0

建議你作一個鏈接回你的其他問題(http://stackoverflow.com/questions/5753170/how-to-pass-hour-minute-and-second-in-calendar-object-in-android-java)到這裏 – rajath 2011-04-22 12:13:47

1

試試這個

Long someLongDate = 240000L 
// I was working with a Long in my own code. 
// I'm sure you can use something like varDate.getLong() 
TextView textView = (TextView) view;     // your view of interest 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");  
textView.setText(sdf.format(new Date(someLongDate))); 

如果它幫助 - 不要忘記檢查我的崗位作爲答案..

16
String cdate = (String) DateFormat.format("yyyy-MM-dd kk:mm:ss", c.getTime()); 
+2

HH應該是0- 23根據文件,但對我來說,返回HH的字符串,如果你我們e kk它會給你0-23而不是1-24就像它說的那樣。 http://developer.android.com/reference/java/text/SimpleDateFormat.html – draksia 2013-02-27 19:02:39

+1

Android版HOUR_OF_DAY DateFormat輔助類應在午夜返回0,如文檔中所述。 http://developer.android.com/reference/android/text/format/DateFormat.html#HOUR_OF_DAY – 2013-07-17 07:49:37

+0

你應該被接受的答案感謝人:) – YouYou 2013-08-13 16:05:31