如何将自定义字符串转换为有效日期时间

时间:2014-04-08 07:57:59

标签: c# datetime-format

我的string10 Apr, 2014 - 09:27,我希望将其与当前DateTime进行比较,看看它是低于还是高于此值。

上面的错误为Not recognized as Valid DateTime

如何正确转换?

我是否需要先将日期格式化为某种格式等?

3 个答案:

答案 0 :(得分:4)

使用DateTime.ParseExactDateTime.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

希望有所帮助。