“DateTime”类型中不存在类型名称“Now”

Den*_*que 2 c# cross-platform xamarin

我正在 Visual Studio 2017 中使用 Xamarin 和 C# 制作跨平台测验应用程序。这行代码出现问题:

DateTime today = new DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

Visual Studio 强调.Now并声称“类型名称 'Now' 不存在于类型 'DateTime' 中。”

代码的目标是获取系统时间并将其显示在文本框中(以及为 notecard 构造函数创建日期)。由于.Now,Visual Studio 声明“类型名称 'Now' 不存在于类型 'DateTime' 中。

我也尝试使用System.DateTime.Now,但这并没有产生更好的结果,因为标题已经包含System. 下面是模板,它是 XAML 页面的标准 C#:

namespace DenisQuiz.UWP
{
   // This page allows the user to create a new study set.
   public sealed partial class CreateNewStudySet : Page
   {
      DateTime today = new DateTime.Now;

      public CreateNewStudySet()
      {
         this.InitializeComponent();

         automaticTodaysDate.Text = today.ToString();
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

这无疑是一个简单的解决方案,但我已经查看了文档,似乎没有人有这个问题,文档表明了这种确切的用法:

DateTime localDate = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

有没有办法纠正当前设置的问题,或者我必须使用其他方法来获取时间?

Dev*_*esh 6

你在这里做错了

              DateTime today = new DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

您必须新建 DateTime 对象。https://msdn.microsoft.com/en-us/library/system.datetime(v=vs.110).aspx。在下面的示例中,我正在传递年、月和日。

            DateTime today = new DateTime(2017,12,1); // or other constructor
Run Code Online (Sandbox Code Playgroud)

或者根据您的系统/服务器日期时间简单地使用返回 DateTime 实例的当前年份、当前月份和当前日期。

            DateTime today = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)