如何在C#中将Feb 19, 2015,22:19:50转换为2/19/2015 22:19:50

我已经尝试过以下内容

DateTime dateTime = DateTime.ParseExact("Feb 19, 2015,22:19:50",
                                        "MMM dd, yyyy;HH:mm:ss",
                                        CultureInfo.InvariantCulture);


但我得到以下错误


  mscorlib.dll中发生了'System.FormatException'类型的第一次机会异常。附加信息:字符串未被识别为有效的DateTime。”

最佳答案

首先,您的字符串和格式不完全匹配。在字符串中,年份和小时之间用逗号分隔,但在格式上则用分号分隔。使用DateTime.ParseExactDateTime.TryParseExact方法进行自定义分析时,您的字符串和格式必须完全基于所使用的IFormatProvider进行匹配。

正确解析字符串后,可以使用.ToString()方法和M/dd/yyyy HH:mm:ss格式以及使用/作为DateSeparator:作为TimeSeparator作为InvariantCulture的区域性对其进行格式化。

string s = "Feb 19, 2015,22:19:50";
DateTime dt;
if(DateTime.TryParseExact(s, "MMM dd, yyyy,HH:mm:ss", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
   Console.WriteLine(dt.ToString("M/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture));
   // 2/19/2015 22:19:50
}


这里是demonstration

关于c# - 如何在C#中将2015年2月19日,22:19:50转换为2015年2月19日22:19:50?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28600297/

10-13 06:16