Ben*_*nCr 12 c# wpf xaml localization
我的应用程序在几个不同的设备上同步数据.因此,它将所有日期存储在UTC时区中,以考虑可能设置为不同时区的不同设备.
麻烦的是,当我读回日期并显示它们时,它们似乎是不正确的(大多数用户都在英国夏令时,所以他们落后一小时).
<TextBlock Margin="5" Style="{StaticResource SmallTextblockStyle}">
<Run Text="Last Updated:" />
<Run Text="{Binding Path=Submitted}" />
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
我是否需要手动覆盖UI线程的set CurrentCulture属性?我知道我必须在Silverlight中这样做.
Viv*_*Viv 14
您在解析存储时将"Utc"指定为DateTime.KindDateTime
并将其转换为DateTime.ToLocalTime()吗?
public DateTime Submitted {
get {
DateTime utcTime = DateTime.SpecifyKind(DateTime.Parse(/*"Your Stored val from DB"*/), DateTimeKind.Utc);
return utcTime.ToLocalTime();
}
set {
...
}
}
Run Code Online (Sandbox Code Playgroud)
^^对我来说很好
更新:
class UtcToLocalDateTimeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
return DateTime.SpecifyKind(DateTime.Parse(value.ToString()), DateTimeKind.Utc).ToLocalTime();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
XAML:
<Window.Resources>
<local:UtcToLocalDateTimeConverter x:Key="UtcToLocalDateTimeConverter" />
</Window.Resources>
...
<TextBlock Text="{Binding Submitted, Converter={StaticResource UtcToLocalDateTimeConverter}}" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10073 次 |
最近记录: |