仅使用MM / DD / YYYY格式化日期对象的日期

时间:2014-03-18 00:05:15

标签: java android parsing date parse-platform

目前使用Parse通过使用:

获取对象上的日期
Date date = object.getCreatedAt();

在TextView中显示它时返回的String是:

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();
}

但是继续为“Unparseable date”获取ParseException,知道发生了什么吗?如果我只是将这一行改回来:

SimpleDateFormat originalFormat = new SimpleDateFormat("EEE MMM DDD HH:mm:ss z yyyy"); 

然后它再次打印完整的日期,没有任何解析异常,包括我不想要的所有日期。

2 个答案:

答案 0 :(得分:1)

请勿使用parse方法,而是使用format

Date date = object.getCreatedAt();
SimpleDateFormat formater = new SimpleDateFormat("M/d/yyyy");
String datestring = formater.format(date); // value is : 3/17/2014

答案 1 :(得分:0)

http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#toString()

java.util.Date.toString()方法始终返回格式的String dow mon dd hh:mm:ss zzz yyyy 例如, Thu Jan 10 02:00:00 EET 1992

您的日期格式"MMM DDD yyyy"需要一个日期字符串,如 1992年1月10日,其中10表示不是1月的第10天,而是1992年的第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 的日期字符串,则格式正确为M/d/yyyy。 有关如何编写日期格式的帮助,请参阅http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html