DateTime.Parse报错:特定格式字符串无法被识别为有效DateTime
解决字符串转DateTime失败的问题
你的日期字符串属于自定义格式,默认的DateTime.Parse无法识别,必须使用指定格式的解析方法,以下是可行的解决方案:
方法1:使用ParseExact(适用于确定格式绝对正确的场景)
using System.Globalization; string myDate = "20221215.08.14.01.37"; // 格式字符串对应:yyyy(4位年)MM(2位月)dd(2位日).HH(2位24小时制小时).mm(2位分钟).ss(2位秒).ff(2位毫秒) DateTime dt = DateTime.ParseExact(myDate, "yyyyMMdd.HH.mm.ss.ff", CultureInfo.InvariantCulture);
方法2:使用TryParseExact(更安全,避免格式错误抛出异常)
using System.Globalization; string myDate = "20221215.08.14.01.37"; if (DateTime.TryParseExact(myDate, "yyyyMMdd.HH.mm.ss.ff", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dt)) { // 转换成功,可在此处使用dt变量 } else { // 处理转换失败的逻辑,比如提示格式错误 }
关键说明
- 格式字符串必须和目标字符串的结构完全匹配:你的字符串是
年(4位)月(2位)日(2位).小时(2位).分钟(2位).秒(2位).毫秒(2位),所以对应格式为yyyyMMdd.HH.mm.ss.ff CultureInfo.InvariantCulture确保解析不受系统区域设置影响,避免因地区差异导致解析失败
内容的提问来源于stack exchange,提问作者mjrcodin
相关产品推荐
相关产品推荐

