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

关于C# DateTime.TryParseExact多格式解析匹配顺序的问询

DateTime.TryParseExact 多格式匹配规则说明

DateTime.TryParseExact 会严格按照你传入的格式数组顺序,匹配到第一个符合的格式后就立即返回结果,不会继续遍历后续格式。

结合你的测试代码和结果可以验证这一点:

测试代码:

string text = "06/01/2023";

string[] formatsArray = new string[]
{
  "yyyyMMdd",
  "dd/MM/yyyy",
  "dd-MMM-yy",
  "MM/dd/yyyy",
  "MM-dd-yyyy"
};

DateTime result;

DateTime.TryParseExact(text, formatsArray, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out result);

当输入文本为"06/01/2023"时,格式数组中"dd/MM/yyyy"排在"MM/dd/yyyy"之前,因此方法优先匹配前者,最终得到的结果是:
result = 日: 06, 月: 01, 年: 2023

如果调整格式数组的顺序,将"MM/dd/yyyy"放在"dd/MM/yyyy"前面,解析结果会变成日: 01, 月: 06, 年: 2023,这进一步证明了匹配逻辑是按数组顺序查找第一个有效格式,找到即停止。

内容的提问来源于stack exchange,提问作者Bola Adel Nassif

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:05:25