使用CultureInfo的ASP.Net DateTime

时间:2011-03-02 13:03:31

标签: c# datetime globalization cultureinfo

一个普遍问题:

DateTime对象是否随之存储CultureInfo,或者您需要使用Formatter根据当前文化格式化DateTime?

我有一个返回DateTime的类属性。在该属性中,我使用CultureInfo对象使用当前文化信息设置DateTime对象。下面是我正在使用的类属性的代码:

public DateTime PrintedQuoteDate { 
    get {
        DateTime printQuoteDate = DateTime.Today;
        // cInfo = CultureInfo object                             

        return Convert.ToDateTime(printQuoteDate , cInfo);

    }
}

所以我的问题是,当我在我的代码中使用上面的属性时,它是否具有我在其get方法中设置的相应文化信息,或者我将必须使用相同的CONVERT代码来格式化日期时间。这里的限制是Property应该只返回DateTime类型。

任何想法,建议

1 个答案:

答案 0 :(得分:1)

DateTime并不存储任何文化。实际上它甚至没有对TimeZone的引用,它只知道它是否是UTC DateTime。这由内部枚举处理。

在使用DateTime的ToString方法时,您需要指定格式提供程序(每个文化本身都是格式提供程序),否则它将使用文化(实际上是文化而不是UI文化)当前的主题。

您可以使用以下ISO国家/地区代码来获取预定文化:

var us = new CultureInfo("en-US");
var british = new CultureInfo("en-GB");
var danish = new CultureInfo("da");

正如你所看到的丹麦语,只要指定语言就足够了,因为没有其他语言环境(据我所知)。