我正在使用具有时间字段的XML API。在C#中,使用以下属性设置时间:
[System.Xml.Serialization.XmlElementAttribute(DataType = "time")]
public System.DateTime TimeOfDay
{
get
{
return this.timeOfDayField;
}
set
{
this.timeOfDayField = value;
}
}
问题是,如果我设置
TimeOfDay=new DateTime(2018, 1, 1, 14, 0, 0);
它序列化为
<TimeOfDay>14:00:00.0000000-05:00</TimeOfDay>
但是当我通过API发送时,另一端将其转换为
<TimeOfDay>19:00:00.0000000+00:00</TimeOfDay>
但是我需要说
<TimeOfDay>14:00:00.0000000+00:00</TimeOfDay>
我尝试了DateTime.SpecifyKind
,但没有任何效果。调用.ToUniversalTime()
会导致<TimeOfDay>19:00:00.0000000-05:00</TimeOfDay>
结束,当我通过API运行它时,它又增加了5个小时成为<TimeOfDay>00:00:00.0000000+00:00</TimeOfDay>
如何设置该时间,使另一端的结果为<TimeOfDay>14:00:00.0000000+00:00</TimeOfDay>
。我不认为仅减去5小时是一个好主意,因为它不考虑夏时制。我无法控制API本身-我需要强制将其序列化为+00
时区的C#代码