在.NET DateTime结构中解释UInt64 dateData?

noc*_*ura 9 .net datetime windbg sos

在通过SOS.dll查看调试器中的DateTime结构时,我看到......

  0:096> !DumpVC 000007feed1ddff8  000000028036d890 
  Name:        System.DateTime
  MethodTable: 000007feed1ddff8
  EEClass:     000007feecbed6b0
  Size:        24(0x18) bytes
  File:          C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.  dll
  Fields:
                MT    Field   Offset                 Type VT     Attr            Value Name
  000007feed1e1158  40000d6        0        System.UInt64  1 instance 5246421159766325152 dateData
Run Code Online (Sandbox Code Playgroud)

如何将"5246421159766325152"解释为DateTime?有没有办法我可以从这个值创建一个DateTime来获得人类可读的版本?

Ste*_*son 9

!Psscor2.PrintDateTime OBJADDR或!sosex.mdt System.DateTime DATAADDR.


Sam*_*Axe 7

DateTime.FromBinary(5246421159766325152)
Run Code Online (Sandbox Code Playgroud)

  • 我经常使用powershell单行程来快速回答:`[System.DateTime] :: FromBinary(5246421159766325152)` (2认同)