我目前正在製作一個Java拍賣程序,我正在嘗試計算最後期限,但是我的日期一直出現在(7/04/2013 11:22),是有一種方法可以使用String.format來爲這個日期添加一個前導零,當它是一個數字的日期時?在Java中爲一個大字符串添加前導零
String timeOne = Server.getDateTime(itemArray.get(1).time).toString()
當我嘗試子字符串時,它會導致我一個問題,它的長度小於17個字符。
在此先感謝詹姆斯。
我目前正在製作一個Java拍賣程序,我正在嘗試計算最後期限,但是我的日期一直出現在(7/04/2013 11:22),是有一種方法可以使用String.format來爲這個日期添加一個前導零,當它是一個數字的日期時?在Java中爲一個大字符串添加前導零
String timeOne = Server.getDateTime(itemArray.get(1).time).toString()
當我嘗試子字符串時,它會導致我一個問題,它的長度小於17個字符。
在此先感謝詹姆斯。
只需使用的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()))
]我目前正在嘗試執行此操作: networkOutput.println(sdf.format(timeOne)); 但我得到一個錯誤:線程「main」中的異常java.lang.IllegalArgumentException:無法格式化給定的對象作爲日期 – user2254372 2013-04-07 12:11:35
請務必在日曆中調用getTime()timeOne,'sdf.format(timeOne.getTime ))' – 2013-04-07 12:20:16
@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中的更改可能會導致此問題。語言環境的改變可能會破壞它。
你可以添加你的代碼嗎? – BobTheBuilder 2013-04-07 11:42:40
我想你正在使用'SimpleDateFormat'或類似的格式化日期。如果是這樣,請使用正確的格式,即*始終*以兩位數字形式返回一天。在'SimpleDateFormat'的情況下:'dd'。 – Crozin 2013-04-07 11:48:07
什麼是Server.getDateTime()的返回類型? – 2013-04-07 11:49:50