2

我认为这将是一个非常简单的,我试图用谷歌搜索它,我不断收到异常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);
4

3 回答 3

3

当你写作时DateTime.ParseExact(sample, "MM/dd/yyyy HH:mm", ...),你说的sample是格式MM/dd/yyyy HH:mm。既然不是,就会抛出异常。

重要的是要知道 aDateTime没有任何与之关联的格式。只有当您将其转换为字符串或从字符串转换时,格式才能发挥作用。你可能应该使用这样的东西:

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并没有多大意义。

于 2013-10-30T14:10:26.007 回答
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);
于 2013-10-30T14:09:30.647 回答
1

您不需要该ParseExact方法,该Parse方法就足够了,因为它允许您的日期表示。有关允许的输入格式的概述,请参阅DateTime - 要解析的字符串。

这意味着以下工作:

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
于 2013-10-30T14:15:50.637 回答