我试图解析一个日期为“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)
答案 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将以所需格式返回字符串日期。