我正在使用一个api,它将日期作为字符串返回,如下所示:
2011-06-13T21:15:19Z
您可以想象这不是最容易理解的格式。我的目标是让它像这样格式化:
9:15 pm - 6/13/2011
任何人都知道如何做到这一点?我是否需要使用正则表达式,或者是否有办法将其转换为DateTime
?
注意:我尝试使用DateTime.ParseExact
方法,但它无效。如果这是解决方案,请你告诉我如何转换上面的例子。感谢。
答案 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"
。