C# 基于WP7上的区域性信息转换日期和时间

C# 基于WP7上的区域性信息转换日期和时间,c#,datetime,windows-phone-7.1,currency,cultureinfo,C#,Datetime,Windows Phone 7.1,Currency,Cultureinfo,我试图根据用户设置的区域性信息在我的应用程序上设置日期和时间格式,但是,我看到的每个帮助资源都不断建议我必须在代码中手动输入每个区域性区域设置。例如,如果我想要en-UK,我必须手动添加新的CultureInfo(“en-UK”);用一些像新文化信息(“英国”)的东西 有没有一种方法可以直接进入手机上当前设置的区域性,而无需我实际键入rtc区域性信息?类似于“date=ConvertToLocalCultureFormat(date);”的东西?我不知道这是否适用于WinPhone7,但您可以使

我试图根据用户设置的区域性信息在我的应用程序上设置日期和时间格式,但是,我看到的每个帮助资源都不断建议我必须在代码中手动输入每个区域性区域设置。例如,如果我想要en-UK,我必须手动添加新的CultureInfo(“en-UK”);用一些像新文化信息(“英国”)的东西


有没有一种方法可以直接进入手机上当前设置的区域性,而无需我实际键入rtc区域性信息?类似于“date=ConvertToLocalCultureFormat(date);”的东西?

我不知道这是否适用于WinPhone7,但您可以使用

 CultureInfo.CurrentCulture.Name
返回当前线程的当前区域性名称(英国或任何应用程序运行的地方)

然而,这不应该是必要的。 如果以这种方式将日期时间转换为字符串:

  DateTime dt = DateTime.Now;
  // Converts dt, formatted using the ShortDatePattern
  // and the CurrentThread.CurrentCulture.
  string dateInString = dt.ToString("d");

您应该在手机的正确文化信息中获取转换信息。

您阅读了哪些帮助资源建议您必须手动指定当前文化

无参数方法自动使用从当前区域性派生的格式信息

此方法使用从当前区域性派生的格式信息。特别是,它组合了
Thread.CurrentThread.CurrentCulture.DateTimeFormat
属性返回的
DateTimeFormatInfo
对象的
ShortDatePattern
LongtTimePattern
属性返回的自定义格式字符串


要使用当前区域性格式化任何内容,您根本不需要做任何特殊的事情。不包含特定格式或区域性的所有格式的重载使用默认区域性


例如,
Date.ToString()
方法将使用
this.ToString(CultureInfo.CurrentCulture)
调用重载,以获取应用程序的当前区域性设置并用于格式化。

谢谢,我认为它可能需要设置为其他形式,因为我读过一些文章抱怨它默认为en-US。
DateTime exampleDate = new DateTime(2008, 5, 1, 18, 32, 6);
string s = exampleDate.ToString();
// Gives "5/1/2008 6:32:06 PM" when the current culture is en-US.
// Gives "01/05/2008 18:32:06" when the current culture is fr-FR.
// Gives "2008/05/01 18:32:06" when the current culture is ja-JP.