2009-02-25 228 views
4

轉換SPListItem的日期時,我得到一個十六進制字符串。日期時間十六進制格式

例如。 「0x01c9d2be | 0x809a8800」

This question answers it.

然而,什麼是轉換它的正確方法,什麼格式是DateTime對象嗎? 如果我想設置日期時間,該怎麼辦?我需要將它轉換爲十六進制格式並將其分配爲十六進制字符串嗎?

必須有更好更理想的方式來提取修改DateTime對象。

任何想法?

謝謝。

+0

對於鏈接的問題upvoted答案回答一切,據我所知。 – 2009-02-25 16:42:15

回答

3

我可以提取日期和時間。沒關係。

因此,當您修改ListItem的DateTime時,您只需將其指定爲DateTime格式並且它將正確解釋它;不需要生成它返回的十六進制。

2

.NET中的DateTime值也可以表示爲64位值。 SharePoint列表項上的DateTime字段上的奇怪字符串格式是這種64位值的變體,編碼爲兩個32位十六進制值。我沒有發現這種格式的微軟文檔。但通過試驗和錯誤,我發現了以下轉換方法:

string[] words = strVal.Split('|'); 
int high = int.Parse(words[0].Substring(2), System.Globalization.NumberStyles.HexNumber); 
uint low = uint.Parse(words[1].Substring(2), System.Globalization.NumberStyles.HexNumber); 
long ticks = high; 
ticks = ticks << 32; 
ticks += low; 
DateTime t = new DateTime(ticks); 
t = t.AddYears(1600); 

其中t保留結果。