1

我在用着

DateTime.Now.ToString("dddd dd MMMM yyyy",new CultureInfo(user.CultureCodeISO2)

对于荷兰语的日期。现在我的要求发生了变化,我也需要支持法语和英语的完整日期。

在我看来,没有通用的解决方案可以在所有 3 种语言中产生正确的日期......尤其是以下以粗体标记的棘手部分

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

2011 年 3 月 29 日 | 2011 年 3 月 29 日

le 1er 2011 年 4 月 | 2011 年 4 月 1 日

我真的需要编写一个自定义函数来添加文件并根据文化更改格式的顺序吗?

ToLongDateString() 对我不起作用,这会导致例如“mercredi 31 décembre 2003”没有文件

4

1 回答 1

1

我不确定您的用户对象是什么以及它在 CultureCodeISO2 中提供的内容。我想它是文化标识符的 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;
    }

你猜我是什么意思?

于 2013-05-06T20:09:20.907 回答