2017-12-29 45 views
0

Wenn DateTime.Kind eine Get-Only-Eigenschaft ist, wie weisen wir DateTimeKind einem DateTime-Objekt zu, das aus DateTime.Parse() stammt?C# Anwenden von DateTimeKind auf ein DateTime-Objekt

var dte = DateTime.Parse("01/01/2018 10:10:00"); 

Console.WriteLine("{0} | Kind: {1}", dte, dte.Kind.ToString()); 

// PRINTS: 1/1/2018 10:10:00 AM | Kind: Unspecified 

dte = dte.ToLocalTime(); 

Console.WriteLine("{0} | Kind: {1}", dte, dte.Kind.ToString()); 

// PRINTS: 1/1/2018 6:10:00 PM | Kind: Local 
// OK, the "Kind" is changed to "Local" which is what I'm trying to achieve 
// however it also converted the time!!! 

Meine Frage ist, wie Utc oder Local "Kind" auf das Objekt dte anzuwenden, ohne dte.ToUniversal() oder dte.ToLocal(), da beide Verfahren konvertiert (oder Änderungen) die Zeit

+1

Betrachten vorbei 'DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal' für die UTC-Zeit oder 'DateTimeStyles.AssumeLocal' für die lokale Zeit, um dies während der Analysephase und nicht nach der Analyse zu tun. –

Antwort

1

Sie sollten eine neue Datetime mit dem Datetimekind Sie wollen, unter Verwendung der geparsten Datetime erstellen können, und ein Konstruktor, das Datetimekind, wie die folgenden nimmt:
msdn.microsoft.com/en-us/library/t882fzc6(v=vs.110).aspx

+0

Nachdem meine Frage als Duplikat markiert war, fand ich die Antwort (fast ähnlich zu Ihrer Antwort) von dem von Ivan Stoev zur Verfügung gestellten Link. Vielen Dank! – morethanyell