2012-06-27 301 views
1

我想以这种格式显示日期字符串:Jun 27, 2012。我这样做:SimpleDateFormat抛出异常

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyy"); 
String date = sdf.format(Calendar.getInstance()); 

但它给我:

java.lang.IllegalArgumentException: Cannot format given Object as a Date

我在做什么错?

+2

哪个异常是抛是什么它的消息说? –

+4

尝试Calendar.getInstance()。getTime() –

回答

9

您不能使用Calendar.getInstance(),因为它的参数是日期而不是日历实例。只要改变参数去getTime()

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy"); 
String date = sdf.format(Calendar.getInstance().getTime()); 
10
sdf.format() 

注意到一个Date,而不是一个对象Calendar

+0

它有点作品,谢谢! – razielsarafan

+2

+1这就是为什么它给出'IllegalArgumentException:无法格式化给定的对象作为日期' –

+0

无论如何,产量是“2012年6月27日”,而不是“2012年6月27日”。有没有办法通过日期格式化程序来使第一个字母大写? – razielsarafan