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