Mac上的Silverlight DateTime格式问题

时间:2011-03-23 06:58:26

标签: silverlight macos

这是一个有趣的问题。如果当前日期是2011年3月23日,我在Mac上的Silverlight应用程序中运行以下代码...

MessageBox.Show(DateTime.Now.ToString(“yyyy-MM-dd,ddd dddd”);

返回:“2011-03-23,星期四星期四”实际上3月21日是星期三!上面的代码在Windows PC上运行良好。

我认为这可能与客户Mac上的计算机设置有关但他们尝试了其他3台Mac并且ddd在一周的第二天返回(即Thu而不是Wed)。嗯,我想,所以我出去带了一台Mac Book Pro,问题就发生了。

我在Mac上的Silverlight插件版本是4.0.60129.0,目前的文化是en-NZ,浏览器是Safari。

如果有人能告诉我最新情况或提供一个很好的解决方案。

1 个答案:

答案 0 :(得分:0)

对于解决方法,我将以下代码添加到App.xaml.cs构造函数

if (new DateTime(2011, 3, 28).ToString("ddd") == "Tue")
{
    CultureInfo culture = new CultureInfo("en-AU");

    culture.DateTimeFormat.DayNames = new[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
    culture.DateTimeFormat.AbbreviatedDayNames = new[] { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
    culture.DateTimeFormat.ShortestDayNames = new[] { "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" };

    System.Threading.Thread.CurrentThread.CurrentCulture = culture;
    System.Threading.Thread.CurrentThread.CurrentUICulture = culture;
}