Я использую API-интерфейс XML с полем времени.В 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, он добавляет еще пять часов, чтобы стать <TimeOfDay>00:00:00.0000000+00:00</TimeOfDay>
Как я могу установить это время так, чтобы результат на другомконец <TimeOfDay>14:00:00.0000000+00:00</TimeOfDay>
.Я не думаю, что простое вычитание 5 часов - хорошая идея, потому что оно не учитывает переход на летнее время.Я не контролирую сам API - мне нужен код на C #, который заставляет его сериализоваться в +00
timezone