Это очень простой, (надеюсь) вопрос.Я новичок в работе с преобразованием DateTime в .NET.
У меня есть служба WCF, у которой есть свойство DateTime - назовите его BookingDate.
Кто-то передает это моей службе WCF в формате:
<a:BookingDate>2012-03-26T17:03:00-04:00</a:BookingDate>
Сервер, на котором он сидит, настроен на часовой пояс UTC (Лиссабон, Лондон, Дублин).
Когда я сохраняю соответствующее значение в базе данных, он устанавливаетзначение должно быть:
2012-03-26 22:03
Я предположил, я неправильно думаю, что .NET Framework (как часть процесса сериализации / десериализации WCF) поместит это в .Net Datetime UTC для меня (как тамминус смещение 4 часа, как указано выше)
Я ожидал: 2012-03-26 21:03
Мой вопрос таков: мне нужно было бы позвонить:
var date = fromClientWCFService.BookingDate.ToUniversalTime();
вчтобы получить ожидаемое время 21:03?
Если нет, есть ли настройка WCF, чтобы сообщить моей службе преобразовывать DateTimes в UTC, а не часовой пояс сервера?
Спасибозаранее
Марка
РЕДАКТИРОВАТЬ:
Из 1 ответа я вижу, что DateTimeOffset можно использовать.Исходя из этого, будет работать следующее: var offset = DateTimeOffset.Parse("2012-03-26T17:03:00-0400");
, чтобы вернуть результат: 2012-03-26 21:03