0

我试图解析一个日期为“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)
4

2 回答 2

1

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

于 2012-07-15T16:52:59.737 回答
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 将以所需格式返回字符串日期。

于 2012-07-15T16:55:11.023 回答