如何在C#中将字符串转换为DateTime?

时间:2014-02-27 06:32:42

标签: c# string datetime

我有一个字符串,我想将它从字符串转换为日期时间。当我尝试给予例外时。 请建议我怎么做。

string stime = "2014-02-02T24:00:00";
DateTime dtStartDateTime = Convert.ToDateTime(stime);

2 个答案:

答案 0 :(得分:0)

这很有用 - 它与DateTime.Parse,BUT

的作用相同

没有任何异常

如果解析成功,则返回true,否则返回false

protected  void Foo()
    {
        // Use DateTime.TryParse when input is valid.
        string input = "2014-02-02T04:00:00";//"2014-02-02";
        DateTime dateTime;
        if (DateTime.TryParse(input, out dateTime))
        {
            lblresult.Text = dateTime.ToString();
        }
        else {
            lblresult.Text = "invalid";
        }
}

<强> See Here

答案 1 :(得分:-1)

遗憾的是,所有答案都是错误的。我真的很震惊甚至没有人测试他们的例子。

.NET不支持24一小时。无法使用DateTime.ParseExact方法解析字符串。但NodaTime就是这样做的。 可以解析值,但是将值解析为第二天的午夜。这可能是因为一小时没有标准24:00

来自Wikipedia;

  

在24小时时间表示法中,日期从午夜00:00开始   当天的最后一分钟从23:59开始。哪里方便,   符号24:00也可用于指代结束时的午夜   给定日期 - 即,一天的24:00与00:00的同一时间   第二天。

我现在无法安装 NodaTime 我安装了NodaTime和但是这个例子可能正常工作有效。

using System;
using NodaTime;
using NodaTime.Text;
using System.Xml;

class Test
{
    static void Main()
    {
        string s = "2014-02-02T24:00:00";
        var pattern = LocalDateTimePattern.CreateWithInvariantCulture
             ("yyyy-MM-dd'T'HH:mm:ss");
        var dt = pattern.Parse(s).Value;
        Console.WriteLine(pattern.Format(dt)); // 2014-02-03T00:00:00
    }
}