SPListItem.Properties DateTime Поля в странном шестнадцатеричном формате - PullRequest
3 голосов
/ 06 февраля 2009

Кто-нибудь знает, как преобразовать эти строковые шестнадцатеричные значения обратно в значения DateTime?

Свойство my_DateProperty (System.String) = 0x01c9874e | 0x98f28800

//l_item is SPListItem          
Hashtable l_properties = l_item.Properties;
if (l_properties != null)
{
    object l_value = null;
    foreach (string l_key in l_properties.Keys)
    {
        l_value = l_properties[l_key];
        Splogger.log("Property " + l_key + " (" + l_value.GetType().ToString() + ") = " + l_value.ToString());
    }
}

Ответы [ 2 ]

7 голосов
/ 19 февраля 2009

Недавно я обнаружил, что это, кажется, происходит только в документах Office 2007 (для других типов файлов значение представляет собой стандартный формат строки для даты). Ответ в том, что шестнадцатеричное значение представляет количество тиков с 01.01.16. Вот преобразование, которое работало для меня:

Dim dateVal as DateTime = New DateTime (Long.Parse (dateText.Replace ("0x", "") .Replace ("|", ""), System.Globalization.NumberStyles.HexNumber)). AddYears (1600 )

0 голосов
/ 08 февраля 2009

Может быть, дата и время преобразуются в "инвариантную" дату с помощью ToString. Смотрите это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...