我有一个 DateTime 变量定义为 DateTime.Now。我需要将其“转换”为 FileTimeUtc。我一定完全误解了这一点,因为我认为这会起作用:
DateTime RunTime;
RunTime = System.DateTime.Now.ToFileTimeUtc();
但我得到错误不能隐式地将类型 long 转换为 system.datetime。
有什么帮助吗?谢谢。
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。
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