我正在尝试将这两个字符串转换为日期,并且无法获取异常。
“ 2015-12-03T15:00:08.868987”和“ 2015-12-03T17:00:08Z”。尝试了这两种格式“ yyyy-MM-dd'T'HH:mm:ss.SSSXXX”和“ yyyy-MM” -dd'T'HH:mm:ss.SSSZ“
String s = "2015-12-03T17:00:08Z"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); try { Date date = simpleDateFormat.parse(s); System.out.println("date : "+simpleDateFormat.format(date)); } catch (ParseException ex) { System.out.println("Exception "+ex); }
Naruto.. 5
原因是您使用的格式错误,此处Z代表时区
String s = "2013-09-29T18:46:19-0700"; SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
如果时间格式在上面,则可以正常工作。如果仅将Z标记在单引号中,它将仅被视为一个String而不是对其进行解析。
编辑:-如果要使用“ 2015-12-03T15:00:08.8689870”,则模式必须为yyyy-MM-dd'T'HH:mm:ss.SSS
String s = "2015-12-03T15:00:08.8689870"; SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
如果日期时间为2015-12-03T17:00:08Z,则可以使用模式yyyy-MM-dd'T'HH:mm:ssX,其中X表示ISO 8601时区。Java7版本的SimpleDateFormat支持ISO- 8601时区使用大写字母X。
String s = "2015-12-03T17:00:08Z"; SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); Date dtIn = inFormat.parse(s);
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
如果您使用Java 6或更早版本,建议使用JodaTime的答案是安全的选择。
String timestamp = "2011-04-15T20:08:18Z"; DateTime dateTime = ISODateTimeFormat.dateTimeParser().parseDateTime(timestamp);
这样可以正确识别UTC时区,并允许您使用Joda Time广泛的操作方法来获取所需的信息。
原因是您使用的格式错误,此处Z代表时区
String s = "2013-09-29T18:46:19-0700"; SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
如果时间格式在上面,则可以正常工作。如果仅将Z标记在单引号中,它将仅被视为一个String而不是对其进行解析。
编辑:-如果要使用“ 2015-12-03T15:00:08.8689870”,则模式必须为yyyy-MM-dd'T'HH:mm:ss.SSS
String s = "2015-12-03T15:00:08.8689870"; SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
如果日期时间为2015-12-03T17:00:08Z,则可以使用模式yyyy-MM-dd'T'HH:mm:ssX,其中X表示ISO 8601时区。Java7版本的SimpleDateFormat支持ISO- 8601时区使用大写字母X。
String s = "2015-12-03T17:00:08Z"; SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); Date dtIn = inFormat.parse(s);
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
如果您使用Java 6或更早版本,建议使用JodaTime的答案是安全的选择。
String timestamp = "2011-04-15T20:08:18Z"; DateTime dateTime = ISODateTimeFormat.dateTimeParser().parseDateTime(timestamp);
这样可以正确识别UTC时区,并允许您使用Joda Time广泛的操作方法来获取所需的信息。