这是一个有趣的问题。如果当前日期是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。
如果有人能告诉我最新情况或提供一个很好的解决方案。
答案 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;
}