Java解析日期与字符串的时区

Sum*_*h S 6 java datetime date

我想用格式的字符串解析带有时区的日期"31-12-2014 18:09 +05:30".我尝试使用"d-MM-yyyy HH:mm ZZ"和使用简单日期格式进行解析"d-MM-yyyy HH:mm Z".但它给了我一个无比例的日期例外.这该怎么做?请帮我.

ala*_*inm 8

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm XXX");
Date d = sdf.parse("31-12-2014 18:09 +05:30");
System.out.println(d);
Run Code Online (Sandbox Code Playgroud)

请注意,您不能XJDK7的SimpleDateFormat之前使用,因为它是ISO 8601时区格式.

使用Java 6,您只能使用ZZZ但不匹配+05:30,因为Z匹配RFC 822时区格式

如果您使用的是Java 6,请参考以下答案:将符合ISO 8601标准的字符串转换为java.util.Date