Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#统一比较时间和日期_C#_Unity3d - Fatal编程技术网

C#统一比较时间和日期

C#统一比较时间和日期,c#,unity3d,C#,Unity3d,我试图比较当前日期,并在特定日期到来时执行操作。但它在c#unity中不起作用。 以下是代码: string over = "2017/06/28 22:38:30"; string dateAndTimeVar = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); if (dateAndTimeVar == over) { print(dateAndTimeVar); } System.DateTime.Now以其最基本的形式

我试图比较当前日期,并在特定日期到来时执行操作。但它在c#unity中不起作用。 以下是代码:

string over = "2017/06/28 22:38:30";
string dateAndTimeVar = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");

if (dateAndTimeVar == over)
{
    print(dateAndTimeVar);
}

System.DateTime.Now以其最基本的形式使用运行程序的计算机的时钟。由于在日期时间中包含秒数,要使条件的计算结果为true,必须在字符串“over”中指定的精确秒数处对其进行计算。仅从发布的代码开始,在没有其他控制环境的情况下,您不太可能在指定的精确秒数运行程序并计算条件。一种简单的调试方法是打印变量或使用调试器来实际查看计算机在执行时看到的内容。

System.DateTime.Now,在其最基本的形式中,使用运行程序的计算机的时钟。由于在日期时间中包含秒数,要使条件的计算结果为true,必须在字符串“over”中指定的精确秒数处对其进行计算。仅从发布的代码开始,在没有其他控制环境的情况下,您不太可能在指定的精确秒数运行程序并计算条件。一种简单的调试方法是打印变量或使用调试器实际查看计算机在执行时看到的内容。

当我遇到常见问题时,我使用
DateTime。现在使用
获取当前时间。
对于比较DateTime对象,很容易使用属性

正如我从代码中了解到的,您希望执行
print(dateAndTimeVar),时间到了。
最好进行比较,例如:

if(DateTime.Now.Ticks >= dateTimeOver)
{
    print(dateAndTimeVar);
}

当我遇到常见问题时,我使用
DateTime.Now
获取当前时间。 对于比较DateTime对象,很容易使用属性

正如我从代码中了解到的,您希望执行
print(dateAndTimeVar),时间到了。
最好进行比较,例如:

if(DateTime.Now.Ticks >= dateTimeOver)
{
    print(dateAndTimeVar);
}
您可以将语法分析器转换为日期时间,并对其进行比较


您可以将语法分析器与日期时间进行比较。

我认为您遇到的主要问题是使用“==”运算符

因为您希望它在下一秒是相等的,所以您需要依靠Unity每秒运行一段代码。如果不是这样,那么到时候您的代码可能会丢失

由于您使用的是字符串,因此无法使用此选项。您可以改为使用DateTime对象来执行比较

var over = DateTime.Parse("2019/04/01 17:09:10");
var dateAndTimeVar = System.DateTime.Now;

if (dateAndTimeVar >= over)
{
    print(dateAndTimeVar);
}

我认为您遇到的主要问题是使用“==”运算符

因为您希望它在下一秒是相等的,所以您需要依靠Unity每秒运行一段代码。如果不是这样,那么到时候您的代码可能会丢失

由于您使用的是字符串,因此无法使用此选项。您可以改为使用DateTime对象来执行比较

var over = DateTime.Parse("2019/04/01 17:09:10");
var dateAndTimeVar = System.DateTime.Now;

if (dateAndTimeVar >= over)
{
    print(dateAndTimeVar);
}

嗯,他们必须根据第二个匹配。为什么要将它们转换为字符串,而不是让DateTime对象处理比较。它们必须基于第二个进行匹配。为什么要将它们转换为字符串,而不只是让DateTime对象处理比较。为什么比较记号比比较DateTime对象更好?为什么比较记号比比较DateTime对象更好?