是否有像Java时间戳这样的xml时间戳格式?

时间:2016-01-20 14:38:10

标签: java xml datetime timestamp

我的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"并且它没有考虑毫秒。

5 个答案:

答案 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)

也许你的意思是标准的ISO for Date。

在这个帖子上

Convert Java Date...

另见:

What is Jaxb and why would i use it

答案 4 :(得分:0)

似乎有一种格式作为XSD 1.1的一部分:

  

类型xsd:dateTimeStamp表示特定日期
  时间格式为CCYY-MM-DDThh:mm:ss.sss。

http://www.datypic.com/sc/xsd11/t-xsd_dateTimeStamp.html