C#如何将DataTable中的指定日期字符串转换为目标格式?
日期格式转换问题解决方案
你的代码错误在于使用目标输出格式去解析原始日期字符串,DateTime.TryParseExact的第二个参数必须和原始字符串的格式完全匹配,而不是你最终想要的格式。
修正步骤:
- 第一步:用和原始字符串匹配的格式解析成
DateTime对象 - 第二步:将解析后的
DateTime对象转换为目标格式的字符串
修正后的代码:
using System; using System.Globalization; class DateConversionExample { static void Main() { // 匹配原始日期字符串的格式 string inputFormat = "M/d/yyyy h:mm:ss tt"; string dateString = "3/29/2022 6:32:05 PM"; DateTime dateValue; // 按原始格式解析日期 if (DateTime.TryParseExact(dateString, inputFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue)) { // 转换为目标格式"MMddyyyy" string formattedDate = dateValue.ToString("MMddyyyy"); Console.WriteLine("转换结果:{0}", formattedDate); // 输出 03292022 } else { Console.WriteLine("无法解析该日期字符串。"); } } }
关键说明:
inputFormat设置为"M/d/yyyy h:mm:ss tt":M:适配单/双位月份(比如3或03)d:适配单/双位日期(比如29或09)yyyy:四位年份h:12小时制的小时(1-12)mm:两位分钟ss:两位秒数tt:AM/PM标识
- 解析成功后,
ToString("MMddyyyy")会强制生成两位月份+两位日期+四位年份的格式,不足两位的部分自动补0
内容的提问来源于stack exchange,提问作者DevP
相关产品推荐
相关产品推荐

