从DateTime变量中减去小时数

本文关键字:小时 DateTime 变量 | 更新日期: 2023-09-27 18:17:18

我想与以下日期进行比较:

我有一个变量DateTime,我想比较这个变量的时间是否小于实际时间…

,

 Datetime DateT = new DateTime.Now; 
    string Myvariable = "13:00:36";

从DateTime变量中减去小时数

可以使用DateTime。TryParseExact MethodDateTime。TimeOfDay属性如下

string value = "13:00:36";
DateTime dt;
if (DateTime.TryParseExact(value, "HH:mm:ss", CultureInfo.InvariantCulture,
                        DateTimeStyles.None, out dt))
{
    if (dt.TimeOfDay > DateTime.Now.TimeOfDay)
    {
        // greater than actual time 
    }
    else
    {
        // smaller than actual time
    }
}

因为你有字符串格式的时间,所以很难比较。你能做的是通过给出正确的格式字符串将它转换为Datetime。现在你有了两个DateTime对象你可以通过TimeOfDay属性获取这些对象的时间并比较。

您是否尝试使用DateTime变量来代替?像这样:

DateTime date1 = new DateTime(2013, 1, 1, 13, 00, 36);
DateTime dateNow = new DateTime.Now;
Console.WriteLine(date1.ToString("T", CultureInfo.CreateSpecificCulture("es-ES")));
// Outputs 6:30:00
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("en-US")));
// Outputs Tuesday, January 1, 2013 13:00:36 PM 
Console.WriteLine(dateNow.ToString());
// Outputs the current date/time

然后您可以创建另一个DateTime并将它们作为DateTime变量进行比较,而不是字符串,尽管您仍然可以使用date1.ToString()函数将值输出为字符串。

更多信息在这里:http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

希望能有所帮助。

使用以下代码获取时间字符串作为DateTime实例:

 DateTime DateT = new DateTime.Now; 
 string Myvariable = "13:00:36";
 DateTime parsedTime = DateTime.ParseExact(
    Myvariable, 
    "HH:mm:ss", 
    CultureInfo.InvariantCulture);

parsedTime将具有字符串变量中给定的时间组件(小时,分钟,秒),但它将具有不同的日期。年、月和日组件不存在于字符串中,因此它们将默认为DateTime.MinValue.Date的日期。为了正确比较,您需要只比较时间部分:

bool isParsedGreater = parsedTime.Hours > DateT.Hours 
    && parsedTime.Minutes > DateT.Minutes 
    && parsedTime.Seconds > DateT.Seconds;