C# 如何将windows 64位时间戳转换为datetime?

C# 如何将windows 64位时间戳转换为datetime?,c#,datetime,timestamp,C#,Datetime,Timestamp,我需要将windows十六进制64位(big-endian)日期时间转换为c#可读的格式 示例'01cb17701e9c885a' 转换为“2010年6月29日星期二09:47:42 UTC” 任何帮助都将不胜感激。使用DateTime.FromFileTimeUtc 有关详细信息,请访问看起来您需要将其解析为十六进制的long,用于生成本地的windows文件时间,并用于生成UTC等效时间 long number = long.Parse("01cb17701e9c885a", NumberS

我需要将windows十六进制64位(big-endian)日期时间转换为c#可读的格式

示例
'01cb17701e9c885a'

转换为
“2010年6月29日星期二09:47:42 UTC”


任何帮助都将不胜感激。

使用DateTime.FromFileTimeUtc

有关详细信息,请访问看起来您需要将其解析为十六进制的
long
,用于生成本地的windows文件时间,并用于生成UTC等效时间

long number = long.Parse("01cb17701e9c885a", NumberStyles.AllowHexSpecifier);
DateTime date = DateTime.FromFileTime(number).ToUniversalTime(); // 06/29/2010 09:47:42
或者更简单,如Matt所述使用

DateTime date = DateTime.FromFileTimeUtc(number); // 06/29/2010 09:47:42
如果您想将其作为字符串表示,可以使用
ToString
方法,该方法将
DateTime
实例与基于英语的区域性(like)结合使用


大端日期时间代表什么?是从历元开始的毫秒数吗?例如,02800008FFFFFFFF(字符串)是windows 64位时间戳结构,我想将其更改为datetime ex)2015-11-08
FromFileTimeUtc
更简单、更直接。:)
string str = date.ToString("ddd, dd MMMM yyyy HH:mm:ss 'UTC'", 
                            CultureInfo.InvariantCulture);