迁移到VS 2017后,ToUnixTimeSeconds方法丢失

时间:2017-04-25 09:30:55

标签: c# visual-studio-2017

path = "D:\MyFiles"

ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "cd \"" + path + "\" && ftp -s:ftpscript.bat");

代码导致编译错误"不包含ToUnixTimeSeconds ..." 的定义。 它在VS 2015中运行良好,我也有var item = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(); 命名空间以及对mscorlib和System(4.0.0.0版本)的引用。 DateTimeOffset的许多其他成员都存在。

2 个答案:

答案 0 :(得分:13)

(根据Eric的评论编辑)

在.NET Framework 4.6中添加了以下API;来自release notes

  

您还可以查看"适用于"官方文档中确认兼容性的部分:https://docs.microsoft.com/en-us/dotnet/api/system.datetimeoffset.tounixtimeseconds#applies-to

只需将您的应用程序目标框架更新为项目文件(.csproj)中的框架版本4.6或更高版本:

<PropertyGroup>
  <TargetFramework>net46</TargetFramework>
  <!--
    or multiple frameworks at once:
    <TargetFrameworks>net46,netstandard1.3</TargetFrameworks>
  -->
  ...
</PropertyGroup>

然后在C#代码中:

public static long UnixTimeNowSec => DateTimeOffset.Now.ToUnixTimeSeconds();

答案 1 :(得分:4)

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

for (int i=0; i<position.length; i++){
  for (int j=0; j<position.length; j++){
    if(position[i] > position[j]){
    swap (position[i], position[j]);
   }
  }
}

// and do this for position[i+1] (i.e. Y) and then position[i+2] (i.e. Z)

希望它有所帮助。