.net-core - 未被识别为有效的日期时间
问题描述
我们使用 CSVHelper 上传带有日期列的 CSV 文件,并且在开发机器上运行良好,直到我们将以下问题发布到 Azure:
处理请求时发生未处理的异常。FormatException:字符串 '13/12/2018' 未被识别为有效的 DateTime。System.DateTimeParse.Parse(ReadOnlySpan s, DateTimeFormatInfo dtfi, DateTimeStyles 样式)
ReaderException:发生意外错误。CsvHelper.Configuration.ConfigurationFunctions.ReadingExceptionOccurred(CsvHelperException 异常)
机器使用的是 dd/MM/yyyy 格式的澳大利亚日期。看起来 Azure 设置为美国格式一。我们如何改变这一点?或者如何强制它进入.Net核心代码配置?
我们还发现,即使我们将日期格式更改为 ISO 日期:yyyy-MM-dd ... 再次在 dev 上运行正常,但在 Azure Production 中却不行?
有任何想法吗?
解决方案
对此进行了修改并解决了问题:
var csvReader = new CsvReader(reader2);
csvReader.Configuration.CultureInfo = CultureInfo.GetCultureInfo("en-AU");
var records = csvReader.GetRecords<UploadBatchItem>();
推荐阅读
- python - Modin 比 pandas 花费更多时间来阅读 CSV
- node.js - 表中保存的外键为空 Sequelize Postgres Association(Node js)
- java - 而漂亮的格式化 XML更改此标头
- php - 如何使用字符串获取多维数组的值
- javascript - 从数据库php调用电话号码后,将电话号码添加到电话号码
- bash - ./gitlab-deploy/.gitlab-deploy.staging.sh:第 8 行:“0”:语法错误:预期操作数(错误标记为“0”)
- node.js - Webpack AMD 模块输出文件内容与 WebPack 文档示例和实际结果不同
- c# - 如何禁用 Serilog 的自动异常记录功能?
- python - 如何在 Yahoo.finance 中找到时间选择按钮?
- php - 根据数组的值对对象属性进行排序