C#使用DateTime.TryParseExact转换日期后转字符串格式不符问题
问题原因
- 核心问题出在
createDate方法的最后一行代码:date = purchaseDate.Date.ToString(); - DateTime类型的无参
ToString()方法会默认使用当前操作系统的区域设置格式输出,绝大多数区域的默认格式都会包含时分秒部分,即使你调用了.Date属性将时间部分置为00:00:00,转换为字符串时仍会输出时间片段,导致不符合仅输出日期的需求。
解决方法
你只需要在调用ToString时指定你需要的日期格式即可,同时可以传入固定的区域信息避免不同系统环境下格式出现差异:
// 如果你需要和输入规则一致的MM-dd-yy格式,修改为以下代码 date = purchaseDate.ToString("MM-dd-yy", CultureInfo.InvariantCulture); // 如果你需要日/月/年格式,替换为对应的格式串即可 // date = purchaseDate.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
额外优化建议
你当前的Asset类中同时维护了string类型的date字段和DateTime类型的purchaseDate字段,容易出现两个值不同步的问题,建议可以仅保留DateTime类型的purchaseDate,需要输出字符串时再按需格式化即可,减少冗余字段。
内容的提问来源于stack exchange,提问作者jens.svensson
相关产品推荐
相关产品推荐

