You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DateTime.ParseExact时持续触发FormatException异常的问题求助

DateTime.ParseExact 触发 FormatException 的原因及解决方法

你的代码触发错误的核心原因是文化区域不匹配:

当你将第三个参数设为null时,ParseExact会使用当前线程的默认文化。如果当前系统的默认文化不使用AM/PM(比如部分欧洲地区采用24小时制),或者日期分隔符不是/,就会导致格式匹配失败。

解决方案

你需要明确指定与字符串格式匹配的文化,有两种常用方式:

  1. 使用美式英语文化(en-US),该文化原生支持AM/PM标记和/日期分隔符:
var myDate = DateTime.ParseExact("3/14/2023 4:08:30 PM", "M/dd/yyyy h:mm:ss tt", CultureInfo.GetCultureInfo("en-US"));
  1. 使用InvariantCulture(固定格式文化),它不受系统区域设置影响,同样支持目标格式:
var myDate = DateTime.ParseExact("3/14/2023 4:08:30 PM", "M/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);

补充说明

格式字符串中的/是自定义格式占位符,会被当前文化的日期分隔符替换。只有指定兼容的文化,才能保证/与原字符串中的分隔符匹配,同时让tt正确识别AM/PM标记。

内容的提问来源于stack exchange,提问作者Luis Eduardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 22:03:24