注意DateTime的IFormatProvider

作者: harde 分类: DotNet 发布时间: 2011-10-09 11:38

DateTime.ToString()是大家常用的方法
正常情况下,.net会自动获取系统的语言来输出日期,但是有时这个不适用,有时服务器是日文的,我们却想输出中文日期,这时就需要使用IFormatProvider了
东西比较简单,看一下就明白了

DateTime tDate = DateTime.Now;
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ja-JP");
string strDate = tDate.ToString("yyyy/MM/dd (dddd)", culture);

来看个微软的DEMO(有修改)

// Specify the date to be formatted using various cultures.
DateTime tDate = DateTime.Now;
// Specify the cultures.
string[] cultureNames = { "en-US", "es-AR", "fr-FR","ja-JP", "nl-NL", "ru-RU","zh-TW","zh-CN"};
Console.WriteLine("Converting the date {0}: ",Convert.ToString(tDate,System.Globalization.CultureInfo.InvariantCulture));
foreach (string cultureName in cultureNames)
{
    System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo(cultureName);
    string dateString = tDate.ToString("yyyy/MM/dd(dddd) hh:mm:ss tt zzz", culture);
    Console.WriteLine("   {0}:  {1}",culture.Name, dateString);
}

输出结果

Converting the date 10/09/2011 11:35:57:
   en-US:  2011/10/09(Sunday) 11:35:57 AM +08:00
   es-AR:  2011/10/09(domingo) 11:35:57 a.m. +08:00
   fr-FR:  2011/10/09(dimanche) 11:35:57  +08:00
   ja-JP:  2011/10/09(日曜日) 11:35:57 午前 +08:00
   nl-NL:  2011-10-09(zondag) 11:35:57  +08:00
   ru-RU:  2011.10.09(воскресенье) 11:35:57  +08:00
   zh-TW:  2011/10/09(星期日) 11:35:57 上午 +08:00
   zh-CN:  2011/10/09(星期日) 11:35:57 上午 +08:00
続行するには何かキーを押してください . . .

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注