用Java格式解析日期字符串[2012-07-15T20:55:33 + 00:00]

时间:2012-07-15 16:41:42

标签: java android

我试图解析一个日期为“2012-07-15T20:55:33 + 00:00”的字符串,但是我一直得到非法的参数异常。我不知道我做错了什么。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddzHH:mm:SS+00:00"); 
String date = "2012-07-15T20:55:33+00:00";
Log.e("res",sdf.format(date));

抛出

    07-15 12:37:28.436: E/AndroidRuntime(20985): FATAL EXCEPTION: main
07-15 12:37:28.436: E/AndroidRuntime(20985): java.lang.IllegalArgumentException
07-15 12:37:28.436: E/AndroidRuntime(20985):    at java.text.DateFormat.format(DateFormat.java:365)
07-15 12:37:28.436: E/AndroidRuntime(20985):    at java.text.Format.format(Format.java:93)

2 个答案:

答案 0 :(得分:1)

您需要使用sdf.parse(date,new ParsePosition(0))而不是sdf.format(date)。

答案 1 :(得分:0)

如果您使用以下代码,它将像魅力一样工作。

SimpleDateFormat sdf = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss"); 
Date date = new Date();
Log.d("res",sdf.format(date));

您可以在日期对象中设置日期,如date.setMonth(month); ...等..而sdf.format将以所需格式返回字符串日期。