Значение DateTime в .NET также может быть представлено как 64-битное значение. Странный формат строки в полях DateTime в элементах списка SharePoint является вариантом такого 64-разрядного значения, закодированного как два 32-разрядных шестнадцатеричных значения. Я не нашел документации от Microsoft по этому формату. Но методом проб и ошибок я нашел следующий метод преобразования:
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 содержит результат.