我正在从 MS SQL Server 2008 数据库中提取日期/时间并尝试格式化日期以仅以“dd/MM/yyyy”格式显示日期。
数据库中的数据如下所示:
2011-05-04 15:50:00.000
未格式化的字符串显示如下:
5/25/2011 8:47:00 AM
然而,当我尝试将其解析为正确的格式时,这段代码失败了:
DateTime dateA = DateTime.ParseExact(curShopDate, "ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture);
curShopDate = dateA.ToString();
我也试过这段代码,试图将日期部分从时间中分离出来:
string[] stringA = curShopDate.Split(' ');
DateTime dateA = DateTime.ParseExact(stringA[0], "ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture);
curShopDate = dateA.ToString();
两个版本都崩溃并显示“字符串未被识别为有效的日期时间。”错误。
最佳答案
问题出在您的格式参数上。您的字符串不是 ddMMyyyy
格式,而是 M/dd/yyyy
格式:
string curShopDate = "5/25/2011 8:47:00 AM";
DateTime dateA = DateTime.ParseExact(curShopDate.Split(' ')[0], "M/dd/yyyy",
System.Globalization.CultureInfo.InvariantCulture);
您还可以在不从日期中剥离时间的情况下解析字符串:
string curShopDate = "5/25/2011 8:47:00 AM";
DateTime dateA = DateTime.ParseExact(curShopDate, "M/dd/yyyy h:mm:ss tt",
System.Globalization.CultureInfo.InvariantCulture);
关于c# - 将字符串解析为 DateTime,格式化,然后返回字符串 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8468825/