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

本文关键字:日期 时间 创建 字符串 | 更新日期: 2023-09-27 17:59:08

我使用的api将日期作为字符串返回,如下所示:

2011-06-13T21:15:19Z

可以想象,这不是最容易理解的格式。我的目标是把它格式化成这样:

上午9:15-2011年6月13日

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

注意:我尝试过使用DateTime.ParseExact方法,但没有成功。如果这是解决方案,你能告诉我如何转换上面的例子吗。谢谢

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

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

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

        string Time = "2011-06-13T21:15:19Z";
        DateTime t;
        if (DateTime.TryParse(Time, out t)) 
        {
            //Works
        }

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

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

使用DateTime.Parse.

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

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