C # UTC DateTime запрос в WCF / .NET
Это очень простой, (надеюсь) вопрос. Я новичок в работе с преобразованием 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