我需要将Windows十六进制64位(大端)日期时间转换为c#中可读的内容吗?
示例'01cb17701e9c885a'
转换为"Tue, 29 June 2010 09:47:42 UTC"
任何帮助都将不胜感激。
答案 0 :(得分:1)
看起来您需要将此解析为long
十六进制,并使用FromFileTime
生成一个本地的Windows文件时间,并使用ToUniversalTime
生成UTC等效项。
long number = long.Parse("01cb17701e9c885a", NumberStyles.AllowHexSpecifier);
DateTime date = DateTime.FromFileTime(number).ToUniversalTime(); // 06/29/2010 09:47:42
或更简单,按照Matt提到的那样使用FromFileTimeUtc
;
DateTime date = DateTime.FromFileTimeUtc(number); // 06/29/2010 09:47:42
如果你想把它作为一个字符串表示,你可以使用ToString
方法那个 DateTime
实例与基于英语的文化(如InvariantCulture
)as;
string str = date.ToString("ddd, dd MMMM yyyy HH:mm:ss 'UTC'",
CultureInfo.InvariantCulture);
答案 1 :(得分:0)
使用DateTime.FromFileTimeUtc
有关详细信息,请访问this site