DateOnly.ParseExact解析异常咨询及.NET库Bug上报方式询问
DateOnly.ParseExact解析结果异常的原因及Bug提交指引
解析结果不符合预期的原因
这不是.NET的Bug,是你对日期格式符的理解有误:
- 小写的
mm在日期格式字符串中代表分钟(Minutes),而非月份 - 表示月份的格式符是大写的
MM
你的代码中使用了"dd/mm/yyyy"作为格式,解析"01/08/2014"时,08会被当作分钟值处理,但DateOnly类型仅包含日期组件,不处理时间相关的分钟,最终导致月份被默认填充为1月。
修正格式字符串为"dd/MM/yyyy"后,代码就能正确解析出目标日期:
namespace IssueRep1 { internal class Program { static void Main(string[] args) { string[] formats = { "dd/MM/yyyy" }; string format = formats[0]; string _strDate = "01/08/2014"; DateOnly _do1 = DateOnly.ParseExact(_strDate, formats); DateOnly _do2 = DateOnly.ParseExact(_strDate, format); Console.WriteLine($"{_strDate}, {_do1} {_do2}"); } } }
输出结果:
01/08/2014, 01-08-2014 01-08-2014
提交.NET库Bug报告的步骤
如果确认是.NET框架本身的问题(排除自身使用错误后),可按以下步骤提交:
- 准备可复现问题的最小代码示例,明确标注预期结果与实际结果
- 记录你使用的.NET版本、操作系统等环境信息
- 前往.NET官方代码仓库的问题跟踪板块,创建新的Issue
- 在Issue中清晰描述问题现象、复现步骤,并附上准备好的代码和环境信息
内容的提问来源于stack exchange,提问作者user22662
相关产品推荐
相关产品推荐

