转换UTC日期时间为Xaml中的本地时区?

我有一个绑定到DataGrid的项目集合.无法轻松访问集合本身,因此必须手动完成.

我在DataGrid上显示的成员之一是DateTime.虽然DateTime是UTC,但需要以用户的本地时间显示.

XAML中是否有一种结构,可以使绑定的DateTime对象从UTC转换为本地时间?

解决方法:

您将需要一个转换器来转换DateTime值.然后,字符串格式仍然照常可用:

class UtcToLocalDateTimeConverter : IValueConverter
  {
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
      if (value is DateTime)
          return ((DateTime)value).ToLocalTime();
      else
          return DateTime.Parse(value?.ToString()).ToLocalTime();
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
      throw new NotImplementedException();
    }
  }

灵感来自/来自更新的答案this SO question,您将在其中找到用法的详细信息.

上一篇:c#-在WPF中设置样式TargetType


下一篇:C#-Windows Phone 8 TextBlock