繁体   English   中英

如何将 Windows 64 位时间戳转换为日期时间?

[英]How to convert windows 64 bit timestamp to datetime?

我需要将 Windows 十六进制 64 位(大端)日期时间转换为 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
有关详细信息,请访问此站点

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM