我认为这将是一个非常简单的事情,我试图谷歌它,我一直得到异常String was not recognized as a valid DateTime.
这是我的价值"2013-10-21T14:10:49"
这就是我要将其转换为10/21/2013 10:49
string sample = "2013-10-21T14:10:49";
DateTime date31 = DateTime.ParseExact(sample, "MM/dd/yyyy HH:mm", System.Globalization.CultureInfo.InvariantCulture);
答案 0 :(得分:2)
您的字符串显示为“Xml-serialized”格式。所以这是XmlConvert
的工作。
string sample = "2013-10-21T14:10:49";
string converted = XmlConvert.ToDateTime(sample, XmlDateTimeSerializationMode.Unspecified)
.ToString("MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);
答案 1 :(得分:2)
当您撰写DateTime.ParseExact(sample, "MM/dd/yyyy HH:mm", ...)
时,您说sample
的格式为MM/dd/yyyy HH:mm
。因为它不是,它会引发异常。
知道DateTime
没有与之关联的任何格式非常重要。只有当你将它转换为字符串时,才能发挥作用。你应该使用这样的东西:
string sample = "2013-10-21T14:10:49";
DateTime date31 = DateTime.Parse(sample, System.Globalization.CultureInfo.InvariantCulture);
string date31string = date31.ToString("MM/dd/yyyy HH:mm", System.Globalization.CultureInfo.InvariantCulture);
// date31string is "10/21/2013 14:10"
而不是ParseExact
,我使用了Parse
,因为格式被Parse
识别,我认为它不能限制它可以接受的格式< em>仅该特定格式。
答案 2 :(得分:1)
您不需要ParseExact
方法,Parse
方法就足够了,因为它允许您的日期表示。有关允许的输入格式的概述,请参阅DateTime - The string to parse。
这意味着以下工作:
string sample = "2013-10-21T14:10:49";
DateTime parsed = DateTime.Parse(sample);
Console.WriteLine(parsed.ToString("MM/dd/yyyy HH:mm:ss"));
结果是:
10/21/2013 14:10:49