XML Schema 中 dateTime 类型的解释
filed in WebService和SOA on Aug.18, 2008, by javafuns
dateTime 类型的形式为:’-'? yyyy ‘-’ mm ‘-’ dd ‘T’ hh ‘:’ mm ‘:’ ss (’.’ s+)? (zzzzzz)?,其中:
- ‘-’? yyyy 是一个4位或者更多位数的可使用负号的数字,表示年份;如果多于4位数字,则打头数字不能是0, ‘0000′ 也是禁止的;同样需要注意的是+号也不允许使用;
- 剩下的 ‘-’ 是时间中各部分的分隔符;
- 第一个 mm 是一个2位数字,表示月份;
- dd 是一个2位数字,表示日期;
- ‘T’ 是一个分隔符,指明后面是日期中的时间;
- hh 是一个2位数字,表示小时;如果分钟和秒是 0,那么使用 ‘24′ 是允许的, 这个如此表示的 dateTime 值马上转为下一天的值(the dateTime value so represented is the first instant of the following day);
- ‘:’ 是一个时间中各部分的分隔符;
- 第二个 mm 是一个2位数的数字,表示分钟数;
- ss 是一个2位整数数字,表示完整的秒数;
- ‘.’ s+ (如果有) 表示秒数的小数部分;
- zzzzzz (如果有) 表示时区 (如下面所描述的).
例如,2002-10-10T12:00:00-05:00 是 2002-10-10T17:00:00Z,比 2002-10-10T12:00:00Z 晚 5 个小时.
For further guidance on arithmetic with dateTimes and durations, see Adding durations to dateTimes (§E).
关于 TimeZone:
时区中的小时数上限是14,分钟数上限是59,除非小时数是 14,而分钟数必须是 0。
时区的形式是 ((’+’ | ‘-’) hh ‘:’ mm) | ‘Z’,其中:
- hh 是一个2位数字 (必要情况下打头数字是0),表示小时数
- mm 是一个2位数字,表示分钟数
- ‘+’ 指明是一个正的时间段
- ‘-’ 指明是一个负的时间段
‘+00:00′, ‘-00:00′, 和 ‘Z’ 都表示相同的 0 时区,即UTC; ‘Z’ 是它的规范表现方式.
当将一个时区加到一个 UTC dateTime 中,结果是该日期和时间“位于这个时区中”。例如,2002-10-10T12:00:00+05:00 是 2002-10-10T07:00:00Z,2002-10-10T00:00:00+05:00 是 2002-10-09T19:00:00Z.




Leave a Reply