我的java时间戳具有以下格式:
YYYY-MM-DD hh:mm:ss.ms
2016-01-08 15:16:44.554
我使用以下方法得到它:
private String getCurrentTimeStamp() {
Date date= new java.util.Date();
return((new Timestamp(date.getTime())).toString());
}
时间戳是否有标准化的xml日期和时间格式? xs: dateTime
具有以下格式:"YYYY-MM-DDThh: mm: SS"
并且它没有考虑毫秒。
答案 0 :(得分:2)
如果您无法更改架构,则必须更改功能
private String getCurrentTimeStamp() {
Date date = new java.util.Date();
return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").format(date);
}
答案 1 :(得分:2)
在XML Schema (XSD)中,所有日期和时间格式均为defined。
Java 8及更高版本中内置的java.time框架支持这些格式。见Tutorial。
以下是一些例子:
// Dates in XML: YYYY-MM-DD
DateTimeFormatter.ISO_LOCAL_DATE.parse("2002-09-24");
// Dates with TimeZone in XML: YYYY-MM-DDZ
DateTimeFormatter.ISO_DATE.parse("2002-09-24Z");
// Dates with TimeZone in XML: YYYY-MM-DD-06:00 or YYYY-MM-DD+06:00
DateTimeFormatter.ISO_DATE.parse("2002-09-24-06:00");
// Times in XML: hh:mm:ss
DateTimeFormatter.ISO_TIME.parse("09:00:00");
DateTimeFormatter.ISO_TIME.parse("09:00:00.5");
// DateTimes in XML: YYYY-MM-DDThh:mm:ss (with an optional TimeZone)
DateTimeFormatter.ISO_DATE_TIME.parse("2002-05-30T09:00:00");
DateTimeFormatter.ISO_DATE_TIME.parse("2002-05-30T09:30:10.5");
DateTimeFormatter.ISO_DATE_TIME.parse("2002-05-30T09:00:00Z");
DateTimeFormatter.ISO_DATE_TIME.parse("2002-05-30T09:30:10.5-06:00");
持续时间和期间不完全兼容,因为它们是split in Durations and Periods in Java。以下是一些例子:
Period.parse("P5Y");
Period.parse("P5Y2M10D");
Duration.parse("PT15H");
Duration.parse("-P10D");
答案 2 :(得分:2)
XML本身不定义任何时间戳格式。
XML Schema第2部分:数据类型第二版incorporates ISO 8601 formats by reference。 dateTime格式允许但不需要小数点后跟任意分数的秒。例如,2016-01-08T15:16:44.554
答案 3 :(得分:0)
答案 4 :(得分:0)
似乎有一种格式作为XSD 1.1的一部分:
类型xsd:dateTimeStamp表示特定日期
时间格式为CCYY-MM-DDThh:mm:ss.sss。