Konvertieren von DateTime vom Typ DateTimeKind.Unspecified in DateTime.Kind.Utc in C # (.NET)

Ich habe C # -Code geerbt, der sehr viele DateTimes enthält, wobei die Kind-Eigenschaft DateTimeKind.Unspecified ist. Diese werden in Datetime.ToUniversalTime () eingespeist, wodurch eine UTC-Datumszeit zurückgegeben wird (in meinem Fall werden 7 Stunden hinzugefügt). So funktioniert ToUniversalTime (); siehe MSDN. Das Problem ist, dass diese DateTimes tatsächlich bereits in UTC-Zeit sind. Sie werden aus einer SQL Server Compact 4.0-Datenbank gezogen. Sie wurden dort in UTC gespeichert. Meine Hauptfrage ist:

Wie ändere ich die Kind-Eigenschaft eines DateTime-Objekts so, dass es UTC und nicht Nicht angegeben ist? Ich möchte Datum und Uhrzeit nicht ändern. So sollte beispielsweise ein Datum vom 1. April 2013, 9:05 Uhr mit der Kind-Eigenschaft "Unspecified" zu einer Datumszeit vom 1. April 2013, 9:05 Uhr UTC werden.

Wenn ich mit einer oder mehreren Folgefragen verwöhnt werden könnte, wäre dies:

Werden Werte von Sql Server Compact unbedingt als "Nicht angegeben" zurückgegeben? In SQL Server Compact werden sie als Typ gespeichert (datetime, nicht null). Wenn man sich den Code ansieht, scheint er nur in die Datenbank aufgenommen worden zu sein, aber es gibt keine Vorkehrungen, um sie als UTC oder etwas anderes zu kennzeichnen. Gibt es eine bessere Möglichkeit, mit Dingen umzugehen? Gibt es eine clevere Möglichkeit, um sicherzustellen, dass die DateTimes in SQL Compact als UTC ausgegeben werden?

Bitte teilen Sie mir mit, ob ich weitere Details zur Verfügung stellen kann. Ich bin neu in dieser Codebasis und beschäftige mich immer noch mit meinem Gehirn. Daher habe ich Probleme, das Problem perfekt zu beschreiben.

Dave

Antworten auf die Frage(6)

Ihre Antwort auf die Frage