我们经常用到的日期相关类型:
1,xs:date
xs:date是schema定义的日期类型,我们可以在XSLT中利用xs:date()来强制转换某个字符串为日期型.当然字符串参数的格式是有要求的:yyyy-mm-dd,例如,2007-03-09.
2,xs:time
xs:time是schema定义的时间类型,我们同样可以在XSLT中利用xs:time()来强制转换某个字符串为时间型.字符串的格式要求为:hh:mm:ss
3,xs:dateTime
xs:dateTime是schema定义的日期时间型,当使用xs:dateTime()来强制转换某个字符串为日期时间型时,字符串的格式应该是:yyyy-mm-ddTHH:MM:SS
例如:2007-03-11T11:09:05,其中的"T"为日期和时间的分割符,是必须的.
note:有时候以上三种类型的末尾会有一个大写字母"Z",它代表Z时区,也就是世界标准时间,原来经常说的GMT时间.
1,xdt:dayTimeDuration
这种类型,根据XSLT2.0 programmer's reference的解释,实际是一个小数,用来表示一个时间段的秒数.它的写法,举例来说:P1DT4H5M7.9S
其中P为前缀,实际的时间段为1天4小时5分钟7.9秒钟,另外,T和上面的情况一样,表示日期和时间的分割符.
这里要注意的是,xdt:dayTimeDuration是一个时间段,而xs:date等则为一个时间点.
因为xdt:dayTimeDuration含有day的部分,所以它可以和xs:date进行运算,例如:xs:date('2007-09-09') + xdt:dayTimeDuration('P1DT4H5M7.9S').
因为xdt:dayTimeDuration含有time部分,所以它可以和xs:time进行运算.例如:xs:time('07:12:50') + xdt:dayTimeDuration('PT12M:5.5S').
2,xdt:yearMonthDuration
这种类型其实是一个表示月数的整数,写法:xdt:yearMonthDuration('P2Y3M').
它可以和xs:date进行运算.
 
以上两种格式都可以和xs:dateTime类型进行运算.
时间点和时间段的运算结果还是一个时间点,而格式还是以前时间点的格式.