В списке Word MRU в реестре кажется, что T01D163DE49AED860
хранится как T01D163DE49AED860
.
Любая идея, как я конвертирую это в datetime?
Это значение реестра Hex. Ключ находится здесь:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsBackup\Status
Dim regTime As Long = CLng(Registry.LocalMachine.OpenSubKey( _
"SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsBackup\Status").GetValue( _
"LastSuccess"))
Dim dt As DateTime = DateTime.FromFileTimeUtc(regTime)
Me.Text = dt.ToLocalTime.ToString
Я предполагаю, что вы уже читали, что T01D163DE49AED860
как string
с Registry.GetValue
мето д или что - то, выглядит как первый T
символ указывает, что это значение времени и остальные это шестнадцатеричное значение, которое можно разобрать на long
время первым.
Удалить первый T
характер вашей строки, разобрать его, чтобы long
с AllowHexSpecifier
стилем и использовать FromFileTimeUtc
метод, чтобы получить DateTime
.
var s = "T01D163DE49AED860";
s = s.Remove(0, 1);
long long1 = long.Parse(s, NumberStyles.AllowHexSpecifier);
var dt = DateTime.FromFileTimeUtc(long1);
Но это возвращает 10.02.2016 08:37:34
, если ваш текущий часовой пояс UTC +01:00
прямо сейчас, вы можете использовать ToLocalTime
чтобы получить 10.02.2016 09:37:34
;
var dt = DateTime.FromFileTimeUtc(long1).ToLocalTime();
DateTime
? Я не делал этот формат раньше.