2015-12-26 48 views
0

我有一個C#UWP應用程序,使用OneDrive REST APIsOneDrive API返回錯誤的最後修改值

的應用程序文件夾的應用程序查詢和檢索,從這個特殊的文件夾(app文件夾)中的所有文件。

string appFolderParameters = string.Concat(OneDriveApi, OneDriveAppsFolderPath, "/children", "?access_token=", App.Settings.Values["access_token"]); 
var appFolderMeetings = await client.GetStringAsync(appFolderParameters); 
foreach (var file in files) 
{ 
    string fileName = file["name"]?.ToString(); 
    string lastModifiedString = file["lastModifiedDateTime"]?.ToString(); 
} 

雖然查詢工作正常,價值,尤其是lastModifiedString總是落後1小時。

我的電腦時區設置爲「自動」和Microsoft帳戶時區設置爲CET(同我的電腦)。任何想法爲什麼API返回一個錯誤的lastModifiedString?

這裏有幾個截圖來展示這個問題。在瀏覽器中

最後更新時間:在API結果/ Visual Studio中 enter image description here

最後更新時間: enter image description here

回答

1

它看起來像lastModifiedDateTime簡單地說就是在UTC。在冬季,CET和UTC之間有一個小時的差異。

要在本地時間和UTC之間進行轉換,請使用DateTime類型或更好的DateTimeOffset類型。

+0

好的。根據您的評論,考慮到時間是UTC,我添加了下面的代碼,現在它似乎工作正常。 串lastModifiedString =文件[ 「fileSystemInfo」] [ 「lastModifiedDateTime」] ?.的ToString()+ 「00:00」; DateTimeOffset lastModified; 如果 { 的LastModified =缺省(的DateTimeOffset)(DateTimeOffset.TryParse(lastModifiedString,出上次更改時間)!); } – sudarsanyes