Freelance Project Requests info@CodeDocu.de Software Development in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

bei einer Datum-Auswertung der Dateien auf einem OneDrive Verzeichnis ist mir aufgefallen, dass diese ein utcDateTime für den letzten Schreibzugriff aufweisen.
Doch was ist die utcDateTime auf einem Server? Werden bei OneDrive alle Server nach der Zeit in Greenwich gestellt?
Ein Blich auf die LocalDateTime und der utcDateTime zeigt jetzt im 03.März eine Zeitverschiebung von einer Stunde.
Im Lokalen Verzeichnis auf der NAS ist ebenfalls eine Stunde als Differenz ausgegeben.
Das heißt, dass die utcDateTime zur Laufzeit aus einer DateTime-Variable ermittelt wird. Da Deutschland die gleiche Zeit aufweist wie die Zeit in Greenwich und die Winterzeit die gleiche ist, sind diese beiden Werte nur deshalb gleich, weil die Serverzeit mit einer Null-Verschiebung arbeitet oder ebenfalls nach der Standardzeit in England läuft.
Wobei: selbst wenn der OneDrive Server einen USA-Offset hätte, würde ja auch dieser auf utcZeit rückgerechnet.

Also kann man Dateien einfach anhand des utcZeitstempels vergleichen.

https://msdn.microsoft.com/de-de/library/system.datetimeoffset.utcdatetime(v=vs.110).aspx
UTC (Coordinated Universal Time)-Datum und die UTC-Zeit des aktuellen DateTimeOffset-Objekts
Sie konvertiert das Datum und die Uhrzeit des aktuellen DateTimeOffset-Objekts in UTC (Coordinated Universal Time). Die Konvertierung wird durchgeführt, indem der Wert der Offset-Eigenschaft vom Datum und der Uhrzeit des aktuellen DateTimeOffset-Objekts subtrahiert wird.


Und im local Verzeichnis einer NAS
- LastWriteTimeUtc {16.02.2015 06:39:22} System.DateTime



Somit kann man lokale Files mit den OneDrive Files über die utc Zeit vergleichen
Lokal

FileInfo objFile = new FileInfo(arrFilenames[iFile]);

string sFilename = objFile.Name;

string sDate = objFile.LastWriteTime.ToString("yy-MM-dd hh:mm:ss") ;



Und auf OneDrive

/// ------------< flTask_Path_with_Children_anzeigen() >------------

ODItemReference item = new ODItemReference { Path = sPath };

var selectedItem = await Connection.GetItemAsync(item, ItemRetrievalOptions.DefaultWithChildren);

if (selectedItem != null)

{

fl_Add_Log("selectedItem=" + selectedItem.Name);

fl_Add_Protocol("--< @Loop:Children >--");

fl_Add_Protocol("Children.Length=" + selectedItem.Children.Length);

for (int iChild = 0; iChild <= selectedItem.Children.Length - 1; iChild++)

{

ODItem odChild = selectedItem.Children[iChild];

fl_Add_Protocol(odChild.Name + "\t utcDtWrite" + odChild.LastModifiedDateTime.UtcDateTime.ToString());

}

fl_Add_Protocol("--</ @Loop:Children >--");

}

ProcessFolder(selectedItem);

/// ------------</ flTask_Path_with_Children_anzeigen() >------------


Mobile
»
Run Async Task in Sync Method
»
C #: find value in a dictionary and compare
»
C#: Determine folder name from path
»
C#: Removal of escape sequences
»
C#: Text without special characters
»
C# Code: Suche Tag und Einfügen String in eime HTML Text
»
C#: Wait() einbauen
»
WPF: Umschreiben einer Methode, Funktion in einen Task
»
C#: Button Event auslösen aus einer anderen Funktion
»
C#: Umschreiben einer Funktion in einen Asynchronen Task

.

Contact for Jobs, Project Requests: raimund.popp@microsoft-programmierer.de