如何将windows 64位时间戳转换为日期时间
本文关键字:转换 日期 时间 时间戳 64位 windows | 更新日期: 2023-09-27 18:20:56
我需要将windows十六进制64位(big-endian)日期时间转换为c#中可读的内容?
示例'01cb17701e9c885a'
转换为"Tue, 29 June 2010 09:47:42 UTC"
如有任何帮助,我们将不胜感激。
看起来您需要将其解析为十六进制的long
,并使用FromFileTime
将windows文件时间生成为本地时间,使用ToUniversalTime
生成UTC等效时间。
long number = long.Parse("01cb17701e9c885a", NumberStyles.AllowHexSpecifier);
DateTime date = DateTime.FromFileTime(number).ToUniversalTime(); // 06/29/2010 09:47:42
或者更简单地使用马特提到的FromFileTimeUtc
;
DateTime date = DateTime.FromFileTimeUtc(number); // 06/29/2010 09:47:42
如果你想将其作为字符串表示,你可以使用ToString
方法,该方法DateTime
实例具有基于英语的文化(如InvariantCulture
)作为;
string str = date.ToString("ddd, dd MMMM yyyy HH:mm:ss 'UTC'",
CultureInfo.InvariantCulture);
使用DateTime.FromFileTimeUtc
有关详细信息,请访问此网站