我的string
为10 Apr, 2014 - 09:27
,我希望将其与当前DateTime
进行比较,看看它是低于还是高于此值。
上面的错误为Not recognized as Valid DateTime
。
如何正确转换?
我是否需要先将日期格式化为某种格式等?
答案 0 :(得分:4)
使用DateTime.ParseExact
或DateTime.TryParseExact
(如果格式无效)。
这适用于您的样本:
DateTime dt = DateTime.ParseExact("10 Apr, 2014 - 09:27", "dd MMM, yyyy - HH:mm", CultureInfo.InvariantCulture);
我正在使用CultureInfo.InvariantCulture
来确保它与英文月份名称一起使用,即使当前的文化不同。如果小时数不是24小时格式,您需要将HH
更改为hh
。
要与当前时间进行比较,请使用DateTime.Now
:
if(dt > DateTime.Now)
{
// ...
}
答案 1 :(得分:1)
您可以使用DateTime.ParseExact
功能,并为其提供您期望的custom format。
答案 2 :(得分:0)
您可以使用此链接来完成您的要求:
How to compare DateTime in C#?
代码段(来自提供的链接):
DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;
if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";
Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
// The example displays the following output:
// 8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM
希望有所帮助。