如何在.Net中将HEX值转换为Datetime

我有一个像这样的hex字符串“5290F419”它对应于日期时间2013-11-23 23:59:45。 我怎么能在.Net编码中这样做。我想用时区Asia / Calcutta将hex字符串转换为日期时间

“5290F419”是1385231385,即2013年11月23日星期六18:29:45 GMT,它叫做time_t

这里是F#中从/到time_t的基本转换,代码在C#中相同很简单

let seconds dt = Convert.ToInt32( (dt - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Local ) ).TotalSeconds ) let fromseconds (seconds : float, dtk : DateTimeKind) = (new DateTime(1970, 1, 1, 0, 0, 0 , ( dtk : DateTimeKind ) )).AddSeconds(seconds) 

所以我希望你能从hex中获取int

这是自1970年1月1日以来unix纪元时间 – 秒的日期的hex表示。

所以将它从hex转换为int。

 int epoch = Convert.ToInt32("5290F419", 16); // second parameter is the numeric base 

然后转换为datetime对象。

TimeSpan span = TimeSpan.FromSeconds(epoch); DateTime theDate = Convert.ToDateTime(span);