C# 如何将windows 64位时间戳转换为datetime?
我需要将windows十六进制64位(big-endian)日期时间转换为c#可读的格式 示例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
'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);