正在解析格式为[2012-07-15T20:55:33+;00:00]的Java中的日期字符串
我试图解析一个日期为“2012-07-15T20:55:33+00:00”的字符串,但是我不断收到非法参数异常。我不知道我做错了什么正在解析格式为[2012-07-15T20:55:33+;00:00]的Java中的日期字符串,java,android,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/Andr
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)
您需要使用sdf.parse(date,new ParsePosition(0))而不是sdf.format(date)。如果您使用下面的代码,它将像一个符咒一样工作
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将以所需的格式返回字符串日期。但您确实意识到,E,dd MMM yyy HH:mm:ss
定义的格式与用于日期字符串的格式完全不同?是的,我对日期格式的理解完全错误。我现在在原来的问题中修复了它,但是仍然得到了那个错误。在SimpleDateFormat
中,你的z
介于dd
和HH
之间,但是你的date
有T
是的,这将非常有效,但是我想解析我的日期字符串。嘿,这不再抛出错误了。但它确实给了我空值。SimpleDataFormat sdf=新的SimpleDataFormat(“yyyy-MM-ddzHH:MM:SS”);字符串日期=“2012-07-15T20:55:33+00:00”;Log.e(“res”,sdf.parse(date,newparseposition(0))+”);尝试SimpleDataFormat(“yyyy-MM-dd'T'HH:MM:SSz”)不要忘记在末尾添加z以考虑时区。我编辑了我之前的评论。嘿,这很有效,不过我只需要把:SS改成小写。再次感谢!