c#是否支持将两个DateTime
转换为xs:duration
数据类型? (我假设我需要两个DateTime
值?)
参考文献:http://www.w3.org/TR/xmlschema-2/#duration和http://www.w3schools.com/schema/schema_dtypes_date.asp(一半)
答案 0 :(得分:4)
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; }
答案 1 :(得分:3)
TimeSpan正是您要找的。
TimeSpan对象表示时间间隔(持续时间或 经过时间),以正数或负数来衡量 天,小时,分钟,秒和分数秒。 TimeSpan 结构也可用于表示一天中的时间,但仅限于 时间与特定日期无关。否则,DateTime或 应该使用DateTimeOffset结构。
示例:
DateTime dt1 = new DateTime(2012, 10, 2, 10, 20, 00);
DateTime dt2 = DateTime.Now;
TimeSpan ts = dt1 - dt2;