【发布时间】:2018-05-30 12:13:25
【问题描述】:
根据https://msdn.microsoft.com/en-us/library/windows/desktop/ms724290(v=vs.85).aspx,文件时间是一个 64 位值,表示自凌晨 12:00 以来经过的 100 纳秒间隔数。 1601 年 1 月 1 日协调世界时 (UTC)。
要在SystemTime 和FileTime 之间进行转换,可以使用Windows API 函数SystemTimeToFileTime 和FileTimeToSystemTime。
我可能在这里遗漏了一些东西,因为我不认为这是一项太罕见的任务。但是,在 SO 中搜索 [.net] systemtimetofiletime 只会提供一个(被否决的)答案,而没有相关问题。
也许这只是缺乏对正确术语的了解,SystemTimeToFileTime 在 .Net 世界中被称为非常不同的东西。
无论如何,问题是,如何在.Net 中正确转换SystemTime 和FileTime?
【问题讨论】:
-
很难找到任何东西,因为这是非常不寻常的要求。 DateTime.Now 已经返回系统时间, DateTime.UtcNow 已经返回文件时间, DateTime.ToUniversalTime() 进行转换, DateTime.ToFileTime() 吐出操作系统编号。很难猜到你为什么要问这个问题,给我们看看。
-
@HansPassant,推断
DateTime已经“包装”了一个 SystemTime 是否正确? -
没错。
标签: .net datetime-conversion systemtime filetime