2016-04-15 11 views
0

Wie erhalten Sie das Datum aus einer Datei ohne den Einfluss der Windows-Zeiteinstellungen?VB Unterschied zwischen Windows-Datei Stunde und VB-Datei Stunde

Ich versuche, Datum Datei mit VB zu lesen, aber ich erhalte ein Unterschied zwischen der Zeit auf Dateieigenschaften (WDT) und die Zeit kehrt von VB (VBT) schreibt, wegen Sommerzeit

Wenn ich Lesen Sie eine Datei im Winter gespeichert im Winter, ich habe einen Unterschied von VBT = WDT + 1h. Und im gleichen Fall, wenn ich eine im Sommer gespeicherte Datei im Winter lese, erhalte ich einen Unterschied von VBT = WDT-1h.

+0

Wenn Sie dann verwenden, um Eigenschaften Ortszeit wollen nicht wie FileInfo.LastWriteTimeUtc statt FileInfo.LastWriteTime wollen. Nicht, dass es einen Unterschied macht, aber es macht es offensichtlich, dass 10 Uhr morgens im Sommer kein Vielfaches von 24 Stunden ab 10 Uhr im Winter ist. –

+0

Neu an VBA angehängt, da es so aussieht, als ob die Sprache verwendet wird. –

Antwort

0

Sie müssen die DateTime (s) in UTC konvertieren und diese mal vergleichen. Dies ist die Zeit ohne Anpassung für die Sommerzeit usw.

Es ist eine Erweiterung des DateTime Typ ToUniversalTime, die die UTC-Wert zurückgibt:

https://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime(v=vs.110).aspx

Beispiel:

Dim currentDateTime = DateTime.Now 
    Debug.WriteLine(currentDateTime.ToString) 
    Debug.WriteLine(currentDateTime.ToUniversalTime.ToString) 

Ausgaben auf meinem Gerät (UK Zeitzone + 1h von UTC für britische Sommerzeit)

15/04/2016 12:21:04 
15/04/2016 11:21:04 

Hinweis, dass es auch ein DateTime.UtcNow, wenn Sie die aktuelle Systemzeit direkt in UTC

+0

Ich habe versucht, diese Funktion zu implementieren, aber der Typ wird nicht erkannt. Eine Fehlermeldung wird angezeigt, dass Visual Basic Active X nicht behandelt. – Crapsy

+0

Sind Sie sicher, dass Sie VB.NET und nicht VB6 oder VBA oder VB Script verwenden? –

+0

Eigentlich verwende ich VBA. – Crapsy