WPF DatePicker日期格式变为3/17/2023 en-US格式,如何变为yyyy-MM-dd ch-ZN格式

问题描述

wpf种日期控件在来回切换页面之后 会自动变为MM/dd/yyyy格式,而实际需要的格式为yyyy-MM-dd

解决方法

1.其实是页面的语言问题在捣鬼,被变成了默认的en-US.
指定该日期控件的language为中文格式 Language=“zh-CN”

 <hc:DatePicker FontSize="15" Width="200" Style="{StaticResource DatePickerExtend}" Language="zh-CN" Height="32" x:Name="Start1"/>

指定之后 确实变成了中文下的时间格式 但是是2023/3/17这种yyyy/MM/dd 还是不是我们想要的yyyy-MM-dd

2.直接在代码的Load方法或构造器方法指定语言 Dispatcher.Thread.CurrentCulture = new System.Globalization.CultureInfo(“zh-CN”);


        public InnerManager()
        {
            InitializeComponent();
            Dispatcher.Thread.CurrentCulture = new System.Globalization.CultureInfo("zh-CN");

            Loaded += (e, s) => {
                //写在这里也行
                //Dispatcher.Thread.CurrentCulture = new System.Globalization.CultureInfo("zh-CN");
            };
            
        }

如果是计时器的,可能还会有问题,就是你在第一次进入的时候是正常的,切换页面再切回来,又错了,这是因为定时器线程在刷的时候,又把当前页面的语言设置为en-US了,这时需要在线程里边进行指定

public async void SecondsTimer(DateTime dateTime)
        {
            Dispatcher.Thread.CurrentCulture = new System.Globalization.CultureInfo("zh-CN");
            Dispatcher.BeginInvoke(new Action(
                delegate
                {
                    timeShort.Text = dateTime.ToString("HH:mm:ss");
                    timeWeek.Text = dateTime.ToString("dddd");
                    timeYear.Text = dateTime.ToString("yyyy/MM/dd");
                }));
         }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值