2013-04-07 43 views
0

我目前正在製作一個Java拍賣程序,我正在嘗試計算最後期限,但是我的日期一直出現在(7/04/2013 11:22),是有一種方法可以使用String.format來爲這個日期添加一個前導零,當它是一個數字的日期時?在Java中爲一個大字符串添加前導零

String timeOne = Server.getDateTime(itemArray.get(1).time).toString() 

當我嘗試子字符串時,它會導致我一個問題,它的長度小於17個字符。

在此先感謝詹姆斯。

+3

你可以添加你的代碼嗎? – BobTheBuilder 2013-04-07 11:42:40

+0

我想你正在使用'SimpleDateFormat'或類似的格式化日期。如果是這樣,請使用正確的格式,即*始終*以兩位數字形式返回一天。在'SimpleDateFormat'的情況下:'dd'。 – Crozin 2013-04-07 11:48:07

+0

什麼是Server.getDateTime()的返回類型? – 2013-04-07 11:49:50

回答

3

只需使用的SimpleDateFormat

import java.text.SimpleDateFormat; 

Calendar timeOne = Server.getDateTime(itemArray.get(1).time) 

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm") 

System.out.println(sdf.format(timeOne.getTime())) 
+0

]我目前正在嘗試執行此操作: networkOutput.println(sdf.format(timeOne)); 但我得到一個錯誤:線程「main」中的異常java.lang.IllegalArgumentException:無法格式化給定的對象作爲日期 – user2254372 2013-04-07 12:11:35

+0

請務必在日曆中調用getTime()timeOne,'sdf.format(timeOne.getTime ))' – 2013-04-07 12:20:16

5

@LeonardBrünings的答案是正確的方式。這就是爲什麼你的原始代碼是錯誤的,即使它工作。

Calendar.toString()的Javadoc這樣說:

"Return a string representation of this calendar. This method is intended to be used only for debugging purposes, and the format of the returned string may vary between implementations."

基本上你正在使用toString()是有目的的javadoc中說,你不應該。即使你調整了toString()的輸出,你的代碼很可能會變得脆弱。 JVM中的更改可能會導致此問題。語言環境的改變可能會破壞它。

相關問題