YYYY-MM DDThh:MM:ssTZD的Java SimpleDataFormat
我们使用的一个外部API需要YYYY-MM DDThh:MM:ssTZD的Java SimpleDataFormat,java,date,Java,Date,我们使用的一个外部API需要 “YYYY-MM-DDThh:MM:ssTZD” 要传入的格式 XMLGregorianCalendar 反对。我不确定Java中是否有任何东西支持“T”。我想知道,是否可以用Java将日期解析为上述格式?他们提供的有效日期示例 是 “2009-07-16T19:20:30-05:00” Update: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZ");
“YYYY-MM-DDThh:MM:ssTZD”
要传入的格式
XMLGregorianCalendar
反对。我不确定Java中是否有任何东西支持“T”
。我想知道,是否可以用Java将日期解析为上述格式?他们提供的有效日期示例
是
“2009-07-16T19:20:30-05:00”
Update:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZ");
GregorianCalendar gc = new GregorianCalendar();
String dateString = sdf.format(gc.getTime());
gc.setTime(sdf.parse(dateString));
XMLGregorianCalendar date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);
输出:
2014-04-17T13:11:30.000+01:00将API与日期模式一起使用
String date = "2009-07-16T19:20:30-05:00";
String pattern = "yyyy-MM-dd'T'HH:mm:ssZ";
DateTimeFormatter dtf = DateTimeFormat.forPattern(pattern);
DateTime dateTime = dtf.parseDateTime(date);
System.out.println(dateTime); // 2009-07-16T19:20:30-05:00
你需要把它放在单引号里
试一试
试试Java8
如果您使用的是早期的Java版本,也可以使用
示例:DateTimeFormatter.of模式(“yyyy-MM-dd'T'HH:MM:ssZ”).format(yourLocalDateTime)
是的,您可以。请尝试此日期格式化程序
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
检查我的最新答案嗨,皮特,我试过了,但不知怎的,它附加了“000”。请查看我的更新答案。如果我有这样的模式“yyyy-MM-ddTHH:MM:ssZ”(不带单引号的T),有没有办法解析这个东西到日期对象?@ShamimAhmad,它会抛出异常:java.lang.IllegalArgumentException:未知模式字符“T”
。
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");