static DateTime DosDateTime(int hex)
{
var binary = Convert.ToString(hex, 2).PadLeft(32, '0');
var date = binary.Substring(0, 16);
var time = binary.Substring(16, 16);
var y = Convert.ToInt32(date.Substring(0, 7), 2);
var M = Convert.ToInt32(date.Substring(7, 4), 2);
var d = Convert.ToInt32(date.Substring(11, 5), 2);
var h = Convert.ToInt32(time.Substring(0, 5), 2);
var m = Convert.ToInt32(time.Substring(5, 6), 2);
var s = Convert.ToInt32(time.Substring(11, 5), 2);
return new DateTime(1980 + y, M, d, h, m, s * 2);
}
static void Main(string[] args)
{
Console.WriteLine(DosDateTime(0x4e736a91));
}
输出: