[英]I have date in string i want to convert it into date format but i got an error
String stringDate="2014-03-20T17:59:03+07:00";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date startDate = df.parse(stringDate);
但我得到一个错误,java.text.ParseException:Unparseable date:“2014-03-20T17:59:03 + 07:00”
格式错误:
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
编辑:
String stringDate="2014-03-20T17:59:03+07:00";//2014-03-20T17:59:03+07:00 2014-03-20T17:59:03-07:00
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
try {
Date startDate = sdf.parse(stringDate);
System.out.println(startDate);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
看一下你要求解析df的格式,以及你要给它的格式。 stringDate的格式为“yyyy-mm-ddThh:mm:33 + ss:ss”,但是df期望“dd / mm / yyyy HH:mm:ss”。 要解决此问题,请更改输入的格式或df的格式。
解析你正在寻找的格式字符串是yyyy-MM-dd'T'HH:mm:ssZ
,但Z
期望时区的格式为+0700
,而不是+07:00
,所以你需要做首先更换一些字符串,以摆脱冒号。
String stringDate = "2014-03-20T17:59:03+07:00";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
Date startDate = df.parse(stringDate.replaceAll("([+-]\\d{2}):(\\d{2})$", "$1$2"));
System.out.println(startDate); // output "Thu Mar 20 11:59:03 CET 2014" in my time zone
Joda-Time库直接接受这些ISO 8601字符串,使用内置格式化程序进行解析。
DateTime dateTime = new DateTime( "2014-03-20T17:59:03+07:00" );
如果你真的需要一个java.util.Date对象(当你可以时最好避免使用juDate),转换。
java.util.Date date = dateTime.toDate();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.