首页 > 解决方案 > 将信用卡日期格式 MM/yy 验证为 Valid Month 和 Year 。ASP.NET 核心

问题描述

我正在尝试客户输入的信用卡到期日期,它是格式为“MM/yy”的字符串,以将其转换为有效的月份和年份。到目前为止,我已经尝试过var result = DateTime.ParseExact("12/24", "MM/yy", CultureInfo.InvariantCulture); 。我不确定这是否是正确的方法。所以,请指导我找到解决它的正确方法。先感谢您

标签: c#asp.netasp.net-mvcasp.net-coreasp.net-web-api

解决方案


代码是正确的。解析两位数年份时,您必须调整 Calendar.TwoDigitYearMax。

默认日历从 1930 年到 2029 年,因此在解析 30 年时,它假定为 1930 年。

使用以下方法修复它:

CultureInfo ci = new CultureInfo(CultureInfo.CurrentCulture.LCID);
ci.Calendar.TwoDigitYearMax = 2099; // the end year, so it goes from 2000 to 2099.
var result = DateTime.ParseExact("12/30", "MM/yy", ci); 

推荐阅读