Я унаследовал код С#, который содержит очень много DateTimes, где свойство Kind является DateTimeKind.Unspecified. Они отправляются в Datetime.ToUniversalTime(), который возвращает дату и время UTC (это добавляет 7 часов в моем случае). Вот как работает ToUniversalTime(); см. MSDN. Проблема в том, что эти DateTimes на самом деле уже в UTC. Они извлекаются из базы данных SQL Server Compact 4.0. Они хранились там в UTC. Мой главный вопрос:
- Как изменить свойство Kind для DateTime, чтобы оно было UTC, а не Unspecified? Я не хочу менять время или дату. Так, например, дата 1 апреля 2013 года, 9:05 утра с свойством Kind, "Unspecified" должна стать датой 1 апреля 2013 года, 9:05 UTC.
Если бы я мог быть удовлетворен последующим вопросом (вопросами), это было бы:
- Обязательны ли значения из Sql Server Compact как "Unspecified"? Внутри Sql Server Compact они сохраняются как type (datetime, not null). Если посмотреть на код, кажется, что они просто помещены в базу данных, но нет никаких положений, чтобы обозначать их как UTC или что-то еще. Есть ли лучший способ справиться с вещами? Есть ли пятно способ гарантировать, что DateTimes выходят из SQL Compact как UTC?
Пожалуйста, дайте мне знать, если я могу предоставить более подробную информацию. Я новичок в этой базе кода и все еще обдумываю ее, поэтому у меня проблемы с описанием проблемы.
Дейв