2017-04-25 60 views
5
var item = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(); 

代码导致编译错误“不包含ToUnixTimeSeconds定义...”。 它在VS 2015中运行良好,我也有using System;命名空间和对mscorlib和System(4.0.0.0版本)的引用。存在许多其他DateTimeOffset成员。ToUnixTimeSeconds方法缺少迁移之后VS 2017年

+0

尝试在您的项目上手动运行'dotnet restore'并关闭VS. –

回答

5

我最近在新项目中遇到同样的问题。我做了一些谷歌搜索和测试后,我找到了这样一个功能:

public static long ToUnixEpochDate(DateTime date) => new DateTimeOffset(date).ToUniversalTime().ToUnixTimeSeconds(); 

//Usage 
var now = DateTime.UtcNow; 
var result = ToUnixEpochDate(now).ToString(); 

希望它有帮助。

+0

这将导致相同的错误(您仍然在静态方法中调用'ToUnixTimeSeconds')。 @Kiratijuta是正确的,该项目需要将.NET 4.6或更高版本作为目标。 –

6

.NET Framework 4.6工作正常。只需更新您的应用程序目标框架

public static long UnixTimeNow => DateTimeOffset.Now.ToUnixTimeSeconds(); 
+0

换句话说,['ToUnixTimeSeconds'在.NET 4.6中引入](https://msdn.microsoft.com/en-us/library/system.datetimeoffset.tounixtimeseconds(v = vs.110).aspx#Anchor_3) ,所以确保你的项目的目标是.NET 4.6或更高版本(属性 - >应用程序 - >目标框架)。 –

相关问题