繁体   English   中英

DateTime.ToString(“ g”)fr_CA

[英]DateTime.ToString(“g”) fr_CA

使用fr_CA文化的日期格式存在偏差。

DateTime.ToString("g")返回“ YYYY-MM-DD 00:00”格式,因为“ YYYY-MM-DD”是加拿大的官方日期格式。 问题是法语和英语都根本不使用这种格式!

所以我的问题是:有没有一种方法可以绕过DateTime.ToString(string format)的默认实现,以便我可以使用“ dd / mm / yyyy”代替fr_CA,它对应于实际用法? 以及所有其他区域性的默认实现。

是否可以不使用其他方法名称就可以做到这一点?

您可以根据情况进行处理。 如果区域性是fr-CA ,则在您的应用启动时将其替换为修改后的副本:

if (Thread.CurrentThread.CurrentCulture.Name == "fr-CA")
{
    var frca = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
    frca.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";
    Thread.CurrentThread.CurrentCulture = frca;
}

并对您需要“自定义”的任何文化进行相同的操作。

请注意,新线程仍将以系统定义的区域性开始; 如果使用的是.NET 4.5或更高版本,则可以使用DefaultThreadCurrentCulture属性覆盖该行为:

CultureInfo.DefaultThreadCurrentCulture = frca;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM