[英]Formatting Date from Date Object with only MM/DD/YYYY
當前使用解析通過以下方式獲取對象的日期:
Date date = object.getCreatedAt();
在TextView中顯示它時,返回的字符串是這樣的:
Mon Mar 17 22:39:27 CET 2014
但是我真的只希望MM / DD / YYYY像這樣顯示: 3/17/2014
我已經試過了:
Date date = object.getCreatedAt();
SimpleDateFormat originalFormat = new SimpleDateFormat("MMM DDD yyyy");
try {
Date originaldate = originalFormat.parse(date.toString());
finalDate = originaldate.toString();
} catch (java.text.ParseException e1) {
e1.printStackTrace();
}
但是繼續獲取“不可解析的日期”的ParseException,知道發生了什么嗎? 如果我只是簡單地將此行更改為:
SimpleDateFormat originalFormat = new SimpleDateFormat("EEE MMM DDD HH:mm:ss z yyyy");
然后,它將再次完美打印出完整的日期,沒有解析異常,包括我不需要的所有日期。
不要使用parse
方法,而是使用format
:
Date date = object.getCreatedAt();
SimpleDateFormat formater = new SimpleDateFormat("M/d/yyyy");
String datestring = formater.format(date); // value is : 3/17/2014
http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#toString()
java.util.Date.toString()方法始終返回格式為dow mon dd hh:mm:ss zzz yyyy
的String,例如, EET 1992 Thu Jan 10 02:00:00 。
您的日期格式"MMM DDD yyyy"
需要一個日期字符串,例如1992年1月10日 ,其中10代表1月10日 ,而不是1月10日。
因此,要將日期轉換為String並使用您的格式將其轉換回Date對象,您需要
Date originaldate = originalFormat.parse(originalFormat.parse(date.toString()));
或將Date.toString()轉換為Date對象,
SimpleDateFormat toStringFormat = new SimpleDateFormat("dow mon dd hh:mm:ss zzz yyyy"); Date originaldate = toStringFormat.parse(date.toString());
最后,如果您希望使用日期格式為3/17/2014的Date字符串,則正確的格式為M/d/yyyy
。 有關如何編寫日期格式的幫助,請參考http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.