【发布时间】:2011-11-27 00:23:54
【问题描述】:
我有以下日期:
2011-10-07T08:51:52.006Z
现在我想把它解析成一个 GregorianCalendar。有没有比使用子字符串并将它们解析为整数更简单的方法?
时间字符串中的 Z 是什么?
我尝试使用 SimpleDateFormat 对其进行解析,但在日期字符串中找不到 T 的解释。
【问题讨论】:
我有以下日期:
2011-10-07T08:51:52.006Z
现在我想把它解析成一个 GregorianCalendar。有没有比使用子字符串并将它们解析为整数更简单的方法?
时间字符串中的 Z 是什么?
我尝试使用 SimpleDateFormat 对其进行解析,但在日期字符串中找不到 T 的解释。
【问题讨论】:
DateFormat format = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" )
Date date = format.parse( "2011-10-07T08:51:52.006Z" );
Calendar calendar = new GregorianCalendar();
calendar.setTime( date );
【讨论】:
我会看看DateTimeFormatter
DateTimeFormatter formatter =
DateTimeFormat.forPattern("<custom_pattern>").withOffsetParsed();
DateTime dateTime = formatter.parseDateTime("<your_input>");
GregorianCalendar cal = dateTime.toGregorianCalendar();
字符串中的 T 充当日期和时间之间的分隔符,Z 是ISO-8601 format 的时区信息。
【讨论】:
您可以使用SimpleDateFormatter 来解析字符串。请阅读上述类的 javadoc 以了解格式字符串可能是什么。 “Z”表示时区信息。
【讨论】: