gpt4 book ai didi

c# - 在 WPF/XAML 中显示本地时区的时间

转载 作者:可可西里 更新时间:2023-11-01 08:23:24 27 4
gpt4 key购买 nike

我的应用程序在多个不同设备之间同步数据。出于这个原因,它将所有日期存储在 UTC 时区中,以说明可能被设置为不同时区的不同设备。

问题是,当我读回日期并显示它们时,它们似乎不正确(大多数用户使用英国夏令时,所以他们晚了一个小时)。

<TextBlock Margin="5" Style="{StaticResource SmallTextblockStyle}">
<Run Text="Last Updated:" />
<Run Text="{Binding Path=Submitted}" />
</TextBlock>

我是否需要手动覆盖 UI 线程的 set CurrentCulture 属性?我知道我必须在 Silverlight 中执行此操作。

最佳答案

您是否将“Utc”指定为 DateTime.Kind在解析存储的 DateTime 并将其转换为 DateTime.ToLocalTime() 时?

public DateTime Submitted {
get {
DateTime utcTime = DateTime.SpecifyKind(DateTime.Parse(/*"Your Stored val from DB"*/), DateTimeKind.Utc);

return utcTime.ToLocalTime();
}

set {
...
}
}

^^ 适合我

更新:

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();
}
}

xaml:

<Window.Resources>
<local:UtcToLocalDateTimeConverter x:Key="UtcToLocalDateTimeConverter" />
</Window.Resources>
...
<TextBlock Text="{Binding Submitted, Converter={StaticResource UtcToLocalDateTimeConverter}}" />

关于c# - 在 WPF/XAML 中显示本地时区的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16921711/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com