c# - 将信用卡日期格式 MM/yy 验证为 Valid Month 和 Year 。ASP.NET 核心
问题描述
我正在尝试客户输入的信用卡到期日期,它是格式为“MM/yy”的字符串,以将其转换为有效的月份和年份。到目前为止,我已经尝试过var result = DateTime.ParseExact("12/24", "MM/yy", CultureInfo.InvariantCulture);
。我不确定这是否是正确的方法。所以,请指导我找到解决它的正确方法。先感谢您
解决方案
代码是正确的。解析两位数年份时,您必须调整 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);
推荐阅读
- react-native - 不再支持通过 UIManager['AIRMap'] 直接关闭 UIManager 的 React Native Accessing 视图管理器配置
- android - TransitionPropagation 是否按预期工作?
- reactjs - 如何禁用反应传单缩放
- python - 编写一个程序,接受用户输入的字符串并每隔一个单词输出一次
- javascript - requestAnimationFrame 在循环绘制中的位置
- javascript - 使用 javascript 更改 Tippy JS 工具提示主题
- vb.net - 打开文件关联使用空白命令行启动 ClickOnce 应用程序
- python-3.x - 使用 PIL 为 gif W/O 设置动画
- php - 网站连接超时 AWS EC2,上传多张图片后崩溃
- docker - Docker compose in another directory 影响其他容器