You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#实现法语日期转英语日期问题求助

问题分析与解决方法

核心问题

你的代码仅在obj.DATE_OPTIN等于"00/00/0000 00:00"时才执行转换逻辑,但目标日期是"21/01/1990 00:00:00",完全不满足该条件,所以转换代码根本没运行,输出自然还是原日期。另外直接用Convert.ToDateTime解析法语格式日期(日/月/年)存在风险——若系统默认文化不是法语区域,可能解析出错或颠倒月日。

修正后的代码

// 指定法语区域文化,确保正确解析日/月/年格式的日期
var frenchCulture = new System.Globalization.CultureInfo("fr-FR");
if (DateTime.TryParseExact(obj.DATE_OPTIN_ORGANISATEUR, "dd/MM/yyyy HH:mm:ss", frenchCulture, 
    System.Globalization.DateTimeStyles.None, out DateTime parsedDate))
{
    // 格式化为目标的"yyyy-MM-dd HH:mm:ss"格式
    obj.DATE_OPTIN = parsedDate.ToString("yyyy-MM-dd HH:mm:ss");
}
// 可选:处理日期解析失败的情况
else
{
    obj.DATE_OPTIN = "无效日期";
}

关键说明

  • 用DateTime.TryParseExact明确指定法语文化(fr-FR)和格式字符串"dd/MM/yyyy HH:mm:ss",避免解析歧义。
  • 移除了原代码中不合理的条件判断,若需保留特定触发逻辑(比如仅替换无效日期),可调整判断规则,比如检查obj.DATE_OPTIN是否为特定无效值。

内容的提问来源于stack exchange,提问作者taniiit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 11:39:48