2010-01-07 71 views
2

我有一個文檔庫,我正在以編程方式訪問SPList。當我使用列表的LastItemModifiedDate屬性時,返回的DateTime是{1/7/2010 1:37:41 AM}但是當我瀏覽到文檔庫(使用我的網絡瀏覽器)時,我可以看到最近的修改日期是7/01/2010 12:37 PM(這是正確的本地當我編輯文件)。爲什麼SPList的LastItemModifiedDate與列表中顯示的修改日期不同?

這看起來像我的時區問題,但我不知道LastItemModifiedDate從哪裏得到它的設置。

我需要更改什麼,以便LastItemModifiedDate和我的瀏覽器中顯示的時間一致?

回答

4

檢查網站設置=>區域設置=>時區。如果您使用給定的偏移量將您的本地時間轉換爲GMT,它們是否匹配?

如果是,那麼您可以嘗試使用SPWeb.RegionalSettings獲取網站的時區。 TimeZone,然後使用LocalTimeToUTCUTCToLocalTime在網站的時區和UTC之間進行轉換(請注意,在SharePoint上,您可以爲每個網站分配它自己的區域設置和TimeZone)。

編輯:只需再次檢查,SPList.LastItemModifiedDate始終是UTC。我會留下評論on MSDN

+2

我相信每個日期都是在SharePoint內部以UTC格式存儲的。這也是爲什麼他們需要在DST更改發生時修補SharePoint(如此處所示:http://blogs.msdn.com/sharepoint/archive/2007/09/19/important-hotfixes-for-upcoming-daylight-savings -time-dst-change.aspx) – naivists 2010-01-07 06:53:45

+1

我也是如此。由於SharePoint中的每個站點都可以擁有自己的時區,並且可以在站點之間移動內容,所以我非常懷疑SharePoint始終會重新計算日期,而是將其存儲在UTC然後在內部使用UTCToLocalTime(或任何內部使用的)來顯示日期。 – 2010-01-07 06:58:57

相關問題