-1

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

我有一个变量 DateTime,我想比较这个变量的 TIME 是否小于实际 TIME ...

前任:

 Datetime DateT = new DateTime.Now; 

    string Myvariable = "13:00:36";
4

3 回答 3

1

您可以使用DateTime.TryParseExact 方法DateTime.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 对象,您可以通过TimeOfDay属性获取这些对象的时间并进行比较..

于 2013-06-06T14:10:43.660 回答
0

您是否尝试过使用该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

希望能帮助到你。

于 2013-06-06T14:06:09.240 回答
0

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

 DateTime DateT = new DateTime.Now; 

 string Myvariable = "13:00:36";

 DateTime parsedTime = DateTime.ParseExact(
    Myvariable, 
    "HH:mm:ss", 
    CultureInfo.InvariantCulture);

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

bool isParsedGreater = parsedTime.Hours > DateT.Hours 
    && parsedTime.Minutes > DateT.Minutes 
    && parsedTime.Seconds > DateT.Seconds;
于 2013-06-06T14:11:38.723 回答