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

时间:2013-12-19 04:55:05

标签: c# .net

我有一个像这样的十六进制字符串“5290F419”它对应于日期时间2013-11-23 23:59:45。 我怎样才能在.Net编码中执行此操作。我想将hex string转换为datetime with timezone Asia / Calcutta

2 个答案:

答案 0 :(得分:2)

这是自1970年1月1日以来unix纪元时间 - 秒的日期的十六进制表示。

所以将它从十六进制转换为int。

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

然后转换为日期时间对象。

  

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

答案 1 :(得分:1)

“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)

所以我希望你能从十六进制中获取int