0

我正在尝试根据用户设置的文化信息来格式化我的应用程序的日期和时间,但是,我看到的每个帮助资源都不断建议我必须在代码中手动输入每个文化区域设置。例如,如果我想要 en-UK,我将不得不手动添加 new CultureInfo("en-UK"); 使用新 CultureInfo("en-UK"); 之类的东西。

有没有办法直接在手机上使用当前设置的文化,而无需我实际输入 rtc 文化信息?可能像“date = ConvertToLocalCultureFormat(date);”这样的东西?

4

3 回答 3

1

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

 CultureInfo.CurrentCulture.Name

返回当前线程的 CurrentCulture 的名称(en-UK 或您的应用程序在其中运行的任何内容)

请参阅参考

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

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

您应该在手机的正确 CultureInfo 中获得转换。

于 2012-06-03T20:36:25.493 回答
1

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

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

于 2012-06-03T20:45:07.223 回答
0

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

DateTime.ToString()参数方法自动使用从当前文化派生的格式信息。

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

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.
于 2012-06-03T20:45:00.057 回答