C# 法国大枣

C# 法国大枣,c#,localization,C#,Localization,我正在使用 DateTime.Now.ToString("dddd dd MMMM yyyy",new CultureInfo(user.CultureCodeISO2) 荷兰语的日期。 现在我的要求改变了,我需要支持法语和英语的完整日期 在我看来,似乎没有通用的解决方案可以在所有3种语言中生成正确的日期。。。特别是以下用粗体标记的棘手部分 le2012年12月15日| 2012年12月15日 乐29火星2011 | 2011年3月29日 艾薇儿2011年4月1日 我真的需要编写一个自定义函数

我正在使用

DateTime.Now.ToString("dddd dd MMMM yyyy",new CultureInfo(user.CultureCodeISO2)
荷兰语的日期。 现在我的要求改变了,我需要支持法语和英语的完整日期

在我看来,似乎没有通用的解决方案可以在所有3种语言中生成正确的日期。。。特别是以下用粗体标记的棘手部分

le2012年12月15日| 2012年12月15日

乐29火星2011 | 2011年3月29日

艾薇儿2011年4月1日

我真的需要编写一个自定义函数来添加le并根据区域性更改格式的顺序吗

ToLongDateString()不适用于我,这会导致例如“mercredi 31 décembre 2003”
如果没有le

,我不确定您的用户对象是什么,以及它在CultureCode2中提供了什么。我想它是文化标识符的int

正如您在下面的链接中看到的,文章没有模式。 如果您确实想要这篇文章,那么您可能需要声明自己的格式:

如果我是你,我会编写一个扩展方法,在内部调用ToString方法,并根据所选语言添加文章

    public static string ToStringWithArticle(this DateTime dateTime, string format, IFormatProvider provider)
    {
        var dateTimeString = dateTime.ToString(format, provider);
        if (provider == new CultureInfo("fr-BE") || provider == new CultureInfo("fr-FR"))
        {
            dateTimeString = "le " + dateTimeString;
        }
        return dateTimeString;
    }

你猜我的意思是什么?

我不确定你的用户对象是什么以及它在CultureCode2中提供了什么。我想它是文化标识符的int

正如您在下面的链接中看到的,文章没有模式。 如果您确实想要这篇文章,那么您可能需要声明自己的格式:

如果我是你,我会编写一个扩展方法,在内部调用ToString方法,并根据所选语言添加文章

    public static string ToStringWithArticle(this DateTime dateTime, string format, IFormatProvider provider)
    {
        var dateTimeString = dateTime.ToString(format, provider);
        if (provider == new CultureInfo("fr-BE") || provider == new CultureInfo("fr-FR"))
        {
            dateTimeString = "le " + dateTimeString;
        }
        return dateTimeString;
    }

你猜我的意思是什么?

为什么结果不正确?为什么你认为没有“le”的日期是不正确的?因为我的翻译告诉我它必须是这样的,它是用于打印PDF信函的。。我只是按照顺序做为什么结果不正确?为什么你认为没有“le”的日期是不正确的?因为我的翻译告诉我它必须是这样的,它是用于打印的PDF信函中的。。我只是按照顺序来做这正是我在这里试图避免的,因为每次需求列表上出现新的文化,我都必须解决这个问题。但我想我必须使用这种方法的一种变体,因为似乎没有我可以信任的内置解决方案……我知道,这不是一种感觉良好的解决方案。但对于扩展方法来说,它是可以很好地处理的,因为你只有一个中心点,你必须改变一些东西。这正是我在这里试图避免的,因为每当一个新的文化出现在需求列表上,我就必须解决这个问题。但我想我必须使用这种方法的一种变体,因为似乎没有我可以信任的内置解决方案……我知道,这不是一种感觉良好的解决方案。但是对于扩展方法,它是可以很好地处理的,因为你只有一个中心点,你必须改变一些东西。