yyyy-MM-dd'T'HH:mm:ss和yyyy-MM-dd'T'HH之间的日期格式差异:mm:ssXXX

pra*_*han 6 java date-format simpledateformat date-formatting

我试图2014-12-03T10:05:59.5646+08:00使用这两种格式解析日期:

  • yyyy-MM-dd'T'HH:mm:ss
  • yyyy-MM-dd'T'HH:mm:ssXXX

当我解析使用yyyy-MM-dd'T'HH:mm:ss它工作正常,但当我解析yyyy-MM-dd'T'HH:mm:ssXXX一个ParseException被抛出.

哪种解析日期的格式正确,以及这两种格式之间究竟有什么区别?

注意:我不能用Joda :(

Gha*_*yth 7

这些是有效的格式:

yyyy-MM-dd'T'HH:mm:ss.SSSZ       >>>  e.g.: 2001-07-04T12:08:56.235-0700

yyyy-MM-dd'T'HH:mm:ss.SSSXXX     >>>  e.g.: 2001-07-04T12:08:56.235-07:00
Run Code Online (Sandbox Code Playgroud)

编辑:
顺便说一句,“X”指的是(ISO 8601 时区)


Jor*_*lla 6

使用这种格式 yyyy-MM-dd'T'HH:mm:ss.SSSSX

来自SimpleDateFormatAPI

//Letter    Date or Time Component  Presentation        Example
  S         Millisecond             Number              978
  X         Time zone               ISO 8601 time zone  -08; -0800; -08:00
Run Code Online (Sandbox Code Playgroud)

使用:

DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSX");
String date = "2014-12-03T10:05:59.5646+08:00";
System.out.println(format.parse(date));
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

Wed Dec 03 03:06:04 CET 2014
Run Code Online (Sandbox Code Playgroud)