请问字符串2022-11-01T00:00:00属哪种DateTime格式?C#转换报错求助
解决C#中ISO格式时间字符串转DateTime报错的问题
你的报错原因很明确:时间字符串2022-11-01T00:00:00结尾没有Z标记,但你用的格式字符串"yyyy-MM-ddTHH:mm:ssZ"强制要求末尾有Z,格式不匹配自然会抛出String was not recognized as a valid DateTime异常。
给你两种可行的解决方法:
方法1:修正格式字符串
直接去掉格式里的Z,和原字符串的结构完全匹配:
DateTime test = DateTime.ParseExact(startTime, "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);
方法2:直接使用默认解析(更简便)
你的时间字符串属于标准ISO 8601格式的子集,C#的默认解析方法可以直接识别,不用手动指定格式:
// 直接解析(如果确定字符串格式合法) DateTime test = DateTime.Parse(startTime, CultureInfo.InvariantCulture); // 更安全的写法:用TryParse避免异常 if (DateTime.TryParse(startTime, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime test)) { // 解析成功后执行你的逻辑 }
内容的提问来源于stack exchange,提问作者user3728381
相关产品推荐
相关产品推荐

