簡體   English   中英

從只有MM / DD / YYYY的日期對象格式化日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM