[英]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.