6

我需要以 SS 毫秒和 HH:MM 时区获取ISO 8601当前日期

完整的日期加上小时、分钟、秒和秒的小数部分:YYYY-MM-DDThh:mm:ss.sTZD(例如 1997-07-16T19:20:30. 45+01:00

见:http ://www.w3.org/TR/NOTE-datetime

我尝试了不同的方法,但我无法获得正确的毫秒和时区数字:

DateFormat df=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSZZ");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
df.format(new Date());

JAVA 结果: 2012-11-24T21:19:27。758+0000

阿帕奇结果: 2012-11-24T21:19:27。758+00:00(Apache Commons FastDateFormat)

4

2 回答 2

6

实际上 JDK 中有一个类可以处理 ISO8601 的解析和格式化:

import javax.xml.bind.DatatypeConverter;

DatatypeConverter.printDateTime(new GregorianCalendar())
//2012-11-24T22:42:03.142+01:00
于 2012-11-24T21:42:59.517 回答
2
于 2016-04-12T20:02:48.803 回答