我如何在.NET Framework 4.8中使用TimeOnly和DateOnly?

8

无论我发布什么代码,都无关紧要,因为.NET 6具有TimeOnlyDateOnly。 我能在.NET Framework 4.8中使用它吗? 是否可以在某处添加引用,或者不能使用DateOnly和TimeOnly。

这是我在.NET 6中编写的代码,现在希望在.NET Framework 4.8中使用:

public TimeOnly Time = new TimeOnly();
public DateOnly Date = new DateOnly();

这是错误提示


1
“DateOnly”和“TimeOnly”仅在.NET 6(以及即将推出的.NET版本)中可用。 - marc_s
2个回答

11

这些类型只存在于 .Net 6+ 中,因此在旧版本中不可用。

不过,你可以手动添加它们。例如,使用这个 NuGet:https://www.nuget.org/packages/Portable.System.DateTimeOnly

它会将这些类型添加到你的 .Net Framework 项目中,并且它们应该表现与 .Net 6 中的相对一致(更多信息请参考 NuGet 的描述)。


3

很遗憾,在.NET Framework上无法使用TimeOnlyDateOnly类型。这些类型是在.NET 6中引入的,并且不会被移植到.NET Framework上。

一段时间以前,我尝试为.NET Standard编译它们(这将使它们在.NET Framework上可用),但是正如预期的那样,这需要大量的工作,因为它们的实现取决于许多仅在.NET 6上可用的类型。虽然这可能在技术上是可能的,但绝对不值得这样做。

我可以想到两个解决方案:

  1. 将您的.NET Framework 4.8应用程序迁移到.NET 6
  2. 依赖于NodaTime并使用等效的LocalTimeLocalDate类型

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接