目前使用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");
然后它再次打印完整的日期,没有任何解析异常,包括我不想要的所有日期。
答案 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。