mbe*_*tea 11 java string date simpledateformat
我需要在java中解析一个字符串.我的字符串具有以下格式:
2014-09-17T12:00:44.0000000Z
Run Code Online (Sandbox Code Playgroud)
但Java试图解析这种格式时抛出以下异常... java.lang.IllegalArgumentException: Illegal pattern character 'T'.
关于如何解析的任何想法?
谢谢!
Men*_*ild 25
鉴于您的输入2014-09-17T12:00:44.0000000Z,仅仅逃避信件是不够的T.你还必须处理尾随Z.但请注意,这Z不是文字,但具有UTC+00:00时区偏移的含义ISO-8601-standard.逃避Z是不正确的.
SimpleDateFormatZ通过模式符号处理这个特殊的字符X.所以最终的解决方案如下:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSX");
Date d = sdf.parse("2014-09-17T12:00:44.0000000Z");
System.out.println(d); // output: Wed Sep 17 14:00:44 CEST 2014
Run Code Online (Sandbox Code Playgroud)
请注意,不同的时钟时间适用于时区CEST(toString()使用系统时区),结果相当于UTC-time 12:00:44.此外,我必须插入七个符号S,以便正确处理您的输入,假装精度低至100ns(尽管Java pre 8只能处理毫秒).
Xav*_*tte 12
你必须逃避'T'字符:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
format.setTimeZone(TimeZone.getTimeZone("UTC"));
Date parse = format.parse("2014-09-17T12:00:44.0000000Z");
Run Code Online (Sandbox Code Playgroud)
使用答案:这个日期格式是什么?2011-08-12T20:17:46.384Z
| 归档时间: |
|
| 查看次数: |
16877 次 |
| 最近记录: |