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

资料url: http://www.w3.org/TR/xmlschema-2/#token

在XML 模式介绍中对datetype有个详细的介绍,由于最近工作涉及到其中的一种时间格式Duration,今天就着重记录一下这一种时间格式。

原始数据类型

 stringbooleandecimal float doubledurationdateTimetimedategYearMonthgYeargMonthDaygDaygMonthhexBinarybase64BinaryanyURIQNameNOTATION

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);



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值