Указана дата: 03.07.2024, это должно быть зимнее время (+1)
См. код.
Мой вопрос: есть ли какой-либо способ указать зимнее время в XMLModel или для даты и времени?
Часовой пояс: Брюссель
Код:
Код: Выделить всё
string xmlString = "";
// simulate the mapping from front end to the request
var periodModel = new PeriodModel();
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(PeriodModel));
serializer.Serialize(ms, periodModel);
var bytes = ms.ToArray();
xmlString = System.Text.Encoding.UTF8.GetString(bytes);
}
Assert.NotNull(xmlString);
xmlString.Should().BeEquivalentTo("?");
Код: Выделить всё
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public class PeriodModel
{
[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
Метод DateTime.ToString будет знать, какой часовой пояс выбрать для даты в зимнее время.
Подробнее здесь: https://stackoverflow.com/questions/785 ... ime-if-the