Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在解析格式为[2012-07-15T20:55:33+;00:00]的Java中的日期字符串_Java_Android - Fatal编程技术网

正在解析格式为[2012-07-15T20:55:33+;00:00]的Java中的日期字符串

正在解析格式为[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

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

您需要使用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改成小写。再次感谢!