如何从字符串创建可读日期和时间?

时间:2011-06-13 23:13:43

标签: c# .net datetime

我正在使用一个api,它将日期作为字符串返回,如下所示:

  

2011-06-13T21:15:19Z

您可以想象这不是最容易理解的格式。我的目标是让它像这样格式化:

  

9:15 pm - 6/13/2011

任何人都知道如何做到这一点?我是否需要使用正则表达式,或者是否有办法将其转换为DateTime

注意:我尝试使用DateTime.ParseExact方法,但它无效。如果这是解决方案,请你告诉我如何转换上面的例子。感谢。

6 个答案:

答案 0 :(得分:3)

string date = "2011-06-13T21:15:19Z";
DateTime dt = DateTime.Parse(date);

答案 1 :(得分:3)

我刚尝试使用TryParse并且它有效。使用try解析比解析更好,因为您可以处理字符串未解析的情况。如果您确定传递的字符串是静态的,那么我想这是没有必要的。

        string Time = "2011-06-13T21:15:19Z";

        DateTime t;
        if (DateTime.TryParse(Time, out t)) 
        {
            //Works
        }

答案 2 :(得分:2)

DateTime.Parse似乎可以正常使用该字符串:

var dt = DateTime.Parse("2011-06-13T21:15:19Z");
Console.WriteLine(dt.ToString("h:mmtt - M/d/yyyy"));

修改

如果你想让格式化的字符串看起来与问题完全一致,只需在其上抛出ToLower()

Console.WriteLine(dt.ToString("h:mmtt - M/d/yyyy").ToLower());

此外,所有日期和时间字符串格式选项都可以在这里找到:
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

答案 3 :(得分:1)

DateTime.Parse应该与那些ISO 8601日期字符串一起使用。

答案 4 :(得分:1)

使用DateTime.Parse。

void Main()
{
    var date = DateTime.Parse("2011-06-13T21:15:19Z");
    Console.WriteLine(date);
}

答案 5 :(得分:0)

您要查找的格式字符串为"hh:mmtt \- M/d/yyyy"