c# - DateTime.TryParse 在 Linux 和 Windows 上的行为不同
问题描述
我试图了解 DateTime.TryParse 如何在 .NET Core 的不同环境中工作
假设我调用了两个方法
DateTime.TryParse("08-04-2020", new CultureInfo("da-DK"), DateTimeStyles.None, out var res)
DateTime.TryParse("08/04/2020", new CultureInfo("da-DK"), DateTimeStyles.None, out var res)
当我在 Linux (docker) 上运行它时,第一种方法返回 false,第二种方法返回 true。当我在 Windows 上运行它时,这两种方法都返回 true。
我在 Linux 上检查了 da-DK 文化中 CultureInfo.DateTimeFormat.DateSeparator 的默认值是“/”,这可能就是为什么它只为第二种方法返回 true 的原因。但在 Windows 上,此分隔符的默认值为“-”,因此第二种方法应返回 false。为什么它返回true?看起来日期分隔符仅在 Linux 环境中被考虑在内。
解决方案
推荐阅读
- angular - 如何在 Angular 6 中使用带有查询参数的“routerLinkActive”?
- android - 如何保存嵌套的recyclerview单项数据?
- php - 如何从请求中获得加号?
- csv - 如何将非常大的 csv 文件与另一个文件连接起来?
- android - 我可以在哪里获得 google-services.json 而无需迁移到 Firebase?
- windows - VS Code 和 Windows Git 中的文件名区分大小写
- powerbi - 在 Power BI 中减去两个日期/时间列
- javascript - Ember.js 中的简单 `yield`
- r - 计算数据框中数值和分类变量的百分比
- java - Firebase Firestore 分布式计数器 - 找不到要序列化的属性