您的位置:首页 > 其它

ISO 8601 时间格式之Duration转换成TimeSpan

2015-07-26 18:13 639 查看
资料url: http://www.w3.org/TR/xmlschema-2/#token
在XML 模式介绍中对datetype有个详细的介绍,由于最近工作涉及到其中的一种时间格式Duration,今天就着重记录一下这一种时间格式。

原始数据类型

 stringbooleandecimal

float,
double,durationdateTimetimedategYearMonthgYeargMonthDaygDaygMonthhexBinarybase64BinaryanyURIQNameNOTATION

Duration

定义:持续的时间。
词汇表示规则:6维空间表示,分别指定格利高里年、月、日、时、分和秒。使用的是ISO 8610的扩展格式:PnYn MnDTnHnMnS。(n为整数或者是小数,P为不可省略的标识符,nY表示n年,nM表示n月,nD表示n天,T表示日期和时间的分隔符,nH表示n小时,nM表示n分钟,nS表示n秒(秒可以是任意精度的小数))
注意事项:
            如果年、月、日、时、分或者秒的等于0的,则相应的标识符可以省略掉,但是,至少存在一个数字和它的标识符;

            S的值可能是小数;

            只有当Time部分所有的元素都没有的时候,T标识符才必须要省略

            P标识符必须存在           

例子:
     P1Y2M3DT10H30M:持续时间为1年,两月,3天,10小时,30分钟。

     P134Y:持续134年;

     P1347M(或者P0Y1347M,P0Y1347M0D):持续1347月;

     P1Y2MT2H:持续1年2月2小时;   

     -P120D: 减去120天;

     P-1347M:错误;

     P1Y2MT:错误。

Duration顺序关系

<> means that the order relation is indeterminate.

 Relation
P1Y> P364D<> P365D <> P366D< P367D
P1M> P27D<> P28D<> P29D<> P30D<> P31D< P32D
P5M> P149D<> P150D<> P151D<> P152D<> P153D< P154D

C#转换成TimeSpan

var timespan= System.Xml.XmlConvert.ToTimeSpan(P5M10D);


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: