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

发送保加利亚格式日期遇验证错误:日大于12时提示日期无效

解决保加利亚日期格式(日.月.年)客户端验证错误问题

服务器接受的日期格式为Date: 24.11.2023 г. 13:45:00(保加利亚标准格式:日.月.年 г. 时分秒),但当发送日期大于12的字符串(如13.2.2024 г. 13:30:00)时触发客户端验证错误,核心原因是默认解析逻辑将日识别为月份,导致格式校验失败。

解决方案

1. 强制使用保加利亚文化格式化日期

如果_citizen.Date是DateTime类型,直接用保加利亚区域信息(bg-BG)生成符合要求的字符串,从根源避免格式混淆:

var payload = new Dictionary<string, string>
{
    { "Date", _citizen.Date.ToString("dd.M.yyyy г. HH:mm:ss", new System.Globalization.CultureInfo("bg-BG")) }
};
  • 格式说明:dd代表两位日(不足补0),M代表一位或两位月,yyyy四位年,HH:mm:ss24小时制时分秒,末尾保留保加利亚语的г.(年的缩写)。

2. 修复已存在的日期字符串解析问题

如果_citizen.Date已经是字符串类型,先通过保加利亚文化正确解析为DateTime,再重新格式化输出:

var dateString = _citizen.Date;
var bulgarianCulture = new System.Globalization.CultureInfo("bg-BG");
if (DateTime.TryParseExact(dateString, "d.M.yyyy г. HH:mm:ss", bulgarianCulture, System.Globalization.DateTimeStyles.None, out var parsedDate))
{
    var formattedDate = parsedDate.ToString("dd.M.yyyy г. HH:mm:ss", bulgarianCulture);
    var payload = new Dictionary<string, string>
    {
        { "Date", formattedDate }
    };
}
else
{
    // 处理日期解析失败的异常逻辑
}

3. 调整客户端验证规则(框架场景)

如果使用ASP.NET等框架自带的客户端验证,需要全局或局部设置文化为保加利亚,确保验证逻辑使用正确的日期格式:

  • 在web.config中全局配置:
<system.web>
    <globalization culture="bg-BG" uiCulture="bg-BG" />
</system.web>
  • 或者在页面/控制器中动态设置:
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("bg-BG");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("bg-BG");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:12:16