2

c# 是否支持将两个DateTime's 转换为xs:duration数据类型?(我假设我需要两个DateTime值?)

参考资料:http ://www.w3.org/TR/xmlschema-2/#duration和http://www.w3schools.com/schema/schema_dtypes_date.asp(中途)

4

2 回答 2

5

XMLConvert课堂上对此有支持,如下所述:http: //kennethxu.blogspot.de/2008/09/xmlserializer-doesn-serialize-timespan.html

我最终使用了这段代码,它正确显示了 xml 中的值

    [XmlElementAttribute("ValidThrough", DataType = "duration")]
    [DataMember(Name = "ValidThrough")]
    [DefaultValue("P10D")]
    public string ValidThrough
    {
        get
        {
            return XmlConvert.ToString(_validThroughField);
        }
        set
        {
            _validThroughField= XmlConvert.ToTimeSpan(value);
        }
    }

    [XmlIgnore]
    public TimeSpan _validThroughField { get; set; }
于 2012-11-05T14:22:04.553 回答
3

TimeSpan是您正在寻找的。

TimeSpan 对象表示一个时间间隔(持续时间或经过的时间),它以天数、小时数、分钟数、秒数和秒数的正数或负数来衡量。TimeSpan 结构也可用于表示一天中的时间,但前提是时间与特定日期无关。否则,应使用 DateTime 或 DateTimeOffset 结构。

例子:

DateTime dt1 = new DateTime(2012, 10, 2, 10, 20, 00);
DateTime dt2 = DateTime.Now;

TimeSpan ts = dt1 - dt2;
于 2012-11-05T12:53:39.440 回答