Есть ли способ гарантировать, что реквизит XML DateTime будет сериализован в зимнее время, если дата приходится на зимнеC#

Место общения программистов C#
Anonymous
Есть ли способ гарантировать, что реквизит XML DateTime будет сериализован в зимнее время, если дата приходится на зимне

Сообщение Anonymous »

XmlSerializer продолжает сериализовать дату и время в летнее время (+2) вместо зимнего времени), если XmlModel имеет свойство с XmlAttrib с конфигурацией «DateType=Time».
Указана дата: 03.07.2024, это должно быть зимнее время (+1)
См. код.
Мой вопрос: есть ли какой-либо способ указать зимнее время в XMLModel или для даты и времени?
Часовой пояс: Брюссель
Код:
string xmlString = "";
// simulate the mapping from front end to the request
var periodModel = new VsbPeriodModel();
var time = new TimeSpan(19, 0, 0);
var date = new DateTime(2024, 03, 07);
var dateWithTimezone = DateTime.SpecifyKind(date.Date.Add(time), DateTimeKind.Local);
periodModel.EndDate = date;
periodModel.EndTime = dateWithTimezone;

using(var ms = new MemoryStream())
{
var serializer = new XmlSerializer(typeof(VsbPeriodModel));
serializer.Serialize(ms, periodModel);
var bytes = ms.ToArray();

xmlString = System.Text.Encoding.UTF8.GetString(bytes);
}

Assert.NotNull(xmlString);
xmlString.Should().BeEquivalentTo("?");

Модель XML:
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public class VsbPeriodModel
{
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, DataType = "date")]
public DateTime EndDate { get; set; }
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, DataType = "time")]
public DateTime EndTime { get; set; }
}

Результат (часть):
19:00:00.0000000+02:00
Ожидаемый результат:
19:00:00.0000000+01:00


Подробнее здесь: https://stackoverflow.com/questions/785 ... ime-if-the

Вернуться в «C#»