0

我有一个 DateTime 变量定义为 DateTime.Now。我需要将其“转换”为 FileTimeUtc。我一定完全误解了这一点,因为我认为这会起作用:

DateTime RunTime;
RunTime = System.DateTime.Now.ToFileTimeUtc();

但我得到错误不能隐式地将类型 long 转换为 system.datetime。

有什么帮助吗?谢谢。

4

2 回答 2

5

DateTime.ToFileTimeUtc返回 long,而不是DateTime. 从文档中:

Windows 文件时间是一个 64 位值,表示自 1601 年 1 月 1 日 (CE) 协调世界时 (UTC) 午夜 12:00 以来经过的 100 纳秒间隔数。Windows 使用文件时间来记录应用程序何时创建、访问或写入文件。

这应该是:

long runTime;
runTime = System.DateTime.Now.ToFileTimeUtc();

如果您只想要当前的协调世界时,而不是Windows 文件时间,您可以使用:

DateTime runTime = System.DateTime.UtcNow;

有关详细信息,请参阅UtcNow

于 2012-06-04T16:18:36.803 回答
0

ToFileTimeUtc()返回一个 long,它表示自公元 1601 年 1 月 1 日 (CE) 协调世界时 (UTC) 午夜 12:00 以来经过的 100 纳秒间隔数。

http://msdn.microsoft.com/en-us/library/system.datetime.tofiletimeutc.aspx

.net 框架不支持将 long 隐式转换为 datetime。

如果您想要一个日期作为 UTC 使用ToUniversalTime() 或现在作为 UTC 使用UtcNow

http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime%28v=vs.100%29.aspx

于 2012-06-04T16:22:26.207 回答