从DateTime变量中减去小时数
本文关键字:小时 DateTime 变量 | 更新日期: 2023-09-27 18:17:18
我想与以下日期进行比较:
我有一个变量DateTime,我想比较这个变量的时间是否小于实际时间…
,
Datetime DateT = new DateTime.Now;
string Myvariable = "13:00:36";
可以使用DateTime。TryParseExact Method和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。现在你有了两个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;