2012-01-02 26 views
2

我有时间为“2011-12-03 12时00分19秒”如何将它转换成“周五2011年12月2”,我知道这http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html,但给我的错误:Android/java时间格式?

Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date 
    at java.text.DateFormat.format(Unknown Source) 
    at java.text.Format.format(Unknown Source) 
    at com.timestamp.NewTimeStamp.<init>(NewTimeStamp.java:21) 
    at com.timestamp.NewTimeStamp.main(NewTimeStamp.java:35) 

我的代码是::

String mytime ="2011-12-03 12:00:19"; 
String pattern = "EEE d MMMMM yyyy"; 
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); 

     Date date = new Date(mytime); 
     String time = dateFormat.format(date); 

     System.out.println("=== > " + time); 
+1

什么是你'pattern'了? – Vaandu 2012-01-02 10:13:18

+0

String pattern =“EEE d MMMMM yyyy”; – 2012-01-02 10:15:29

+2

日期日期=新日期(mytime);我认为这条线给你错误。在该行之前和之后加上调试代码System.out.println(“1”)&(“2”),然后执行并查看该行是否真的产生错误或什么? – Android 2012-01-02 10:17:45

回答

7

将您的输入转换为Date然后格式化。

 String mytime ="2011-12-03 12:00:19"; 
     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-dd-MM HH:mm:ss"); 
     Date myDate = dateFormat.parse(mytime); 
     System.out.println("=== > " + myDate); 
     SimpleDateFormat timeFormat = new SimpleDateFormat("EEE d MMMMM yyyy"); 
     String time = timeFormat.format(myDate); 
     System.out.println("=== > " + time); 

输出:

D:\Work\Stand alone Java classes>javac Test2.java && java Test2 
=== > Wed Jan 12 12:00:19 IST 2011 
=== > Wed 12 January 2011 
+0

thnx这么多,我忘了把它转换成日期第一... – 2012-01-02 10:27:24

+0

但是,当月份它的回归一月实际上是十二月? – 2012-01-02 10:31:31

+0

SimpleDateFormat dateFormat = new SimpleDateFormat(“yyyy-dd-MM HH:mm:ss”);是对的 – 2012-01-02 10:34:22