【问题标题】:How to convert windows 64 bit timestamp to datetime?如何将 Windows 64 位时间戳转换为日期时间?
【发布时间】:2016-02-08 18:40:38
【问题描述】:

我需要将 Windows 十六进制 64 位(大端)日期时间转换为 c# 中可读的内容吗?

示例'01cb17701e9c885a'

转换为"Tue, 29 June 2010 09:47:42 UTC"

任何帮助将不胜感激。

【问题讨论】:

  • 大端日期时间代表什么?自纪元以来的毫秒数吗?
  • 例如,02800008FFFFFFFF(String) 是 windows 64 位时间戳结构,我想把它改成 datetime ex)2015-11-08

标签: c# datetime timestamp


【解决方案1】:

使用 DateTime.FromFileTimeUtc
详情请访问this site

【讨论】:

    【解决方案2】:

    看起来您需要将其解析为十六进制的long,并使用FromFileTime 生成本地文件时间,并使用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 方法that DateTime 实例与基于英语 文化(如InvariantCulture)作为;

    string str = date.ToString("ddd, dd MMMM yyyy HH:mm:ss 'UTC'", 
                                CultureInfo.InvariantCulture);
    

    【讨论】:

    • FromFileTimeUtc 更简单、更直接。 :)
    猜你喜欢
    • 2010-12-18
    • 2017-01-21
    • 2019-04-03
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 2017-04-25
    相关资源
    最近更新 更多