C#统一比较时间和日期

时间:2017-06-28 18:28:29

标签: c# unity3d

我正在尝试比较当前日期并尝试在特定日期到来时执行操作。但它并没有在c#unity中起作用。 这是代码:

TypeError: 'module' object is not callable

4 个答案:

答案 0 :(得分:1)

我相信您遇到的主要问题是使用“ ==”运算符。

由于您希望它等于秒,因此您依靠Unity每秒运行一段代码。如果不是这种情况,那么时间到了,您的代码可能会丢失。

由于您使用的是字符串,因此该选项会卡住。您可以改用DateTime对象执行比较。

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

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

答案 1 :(得分:0)

System.DateTime.Now,以其最基本的形式,使用运行该程序的计算机的时钟。由于您在日期时间中包含秒数,因此对于条件评估为true,您必须在字符串中指定的确切秒数内评估它' over'。仅从已发布的代码开始,您很可能无法运行程序并在指定的第二个条件下评估条件,而无需控制环境。调试它的一种简单方法是打印变量或使用调试器实际查看计算机在执行时看到的内容。

答案 2 :(得分:0)

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

正如我从您的代码中所理解的那样,您希望在时间到来时执行print(dateAndTimeVar);。 比较更好,比如:

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

答案 3 :(得分:0)

string dateInput = "2017/06/28 22:38:30";
DateTime parsedDate = DateTime.Parse(dateInput);

if (DateTime.Now > parsedDate)
{
    print("It is Over");
}

你可以解析日期时间,并比较它。