如何在 .Net 中将区域性更改为 DateTimepicker 或日历控件

Posted

技术标签:

【中文标题】如何在 .Net 中将区域性更改为 DateTimepicker 或日历控件【英文标题】:How to change culture to a DateTimepicker or calendar control in .Net 【发布时间】:2008-10-28 01:27:51 【问题描述】:

当期望文化与 PC 中安装的文化不同时,如何在 .Net 中将国际化设置为 DateTimepickerCalendar WinForm 控件?

【问题讨论】:

【参考方案1】:

似乎不可能改变文化。请参阅此KB article。

【讨论】:

KB 文章的链接已失效... :( 他们现在应该已经修复了... 8 年后... 这两个链接现在都关闭了【参考方案2】:

基于之前的解决方案,我认为更好的是:

dateTimePicker.Format = DateTimePickerFormat.Custom;
dateTimePicker.CustomFormat = Application.CurrentCulture.DateTimeFormat.ShortDatePattern;

【讨论】:

为我返回“dd-MMM-yy”,这对改变文化有何帮助?【参考方案3】:
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("fr");
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture;

【讨论】:

这不会更改 Windows 的区域设置,只会更改当前 UI 文化和当前线程的当前文化(如属性名称所示)。但是 DateTimePicker 控件只查找 Windows 的区域设置,所以没关系。【参考方案4】:

对于日期时间选择器

dtp.Format = DateTimePickerFormat.Custom;
dtp.CustomFormat = "yyyy-MM-dd"; // or the format you prefer

【讨论】:

设置格式并不是唯一受文化控制的事情。它控制着许多其他事情,例如一周的第一天是星期日还是星期一。 格式仅用于显示当前日期,但如果您想选择它,datetimepicker 控件将根据区域设置显示完整日期。【参考方案5】:

我觉得有弯路。

    设置事件处理程序“ValueChanged”

    代码

    dateTimePicker.Format = DateTimePickerFormat.Custom;
    string[] formats = dateTimePicker.Value.GetDateTimeFormats(Application.CurrentCulture);
    dateTimePicker.CustomFormat = formats[0];
    

【讨论】:

GetDateTimeFormats() 不产生格式字符串(可以用来做格式化),而是格式化字符串(格式化的结果)。将这样的字符串分配给 .CustomFormat 是没有意义的。会否决答案,但我自己缺乏声誉......【参考方案6】:

使用 Telerik radDateTimePicker 并在 InitializeComponent() 之后编写此代码,并使用您的文化而不是“fa-IR”。

Application.CurrentCulture = new CultureInfo("fa-IR"); 
radDateTimePicker1.Format = DateTimePickerFormat.Custom;
radDateTimePicker1.CustomFormat = Application.CurrentCulture.DateTimeFormat.ShortDatePattern;

【讨论】:

以上是关于如何在 .Net 中将区域性更改为 DateTimepicker 或日历控件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP .NET MVC 中将 @title.visible 更改为 false

如何在 vb.net 中将 datagridview 单元格样式从默认文本框更改为组合框?

如何在 sql server 2008r2 中将行名更改为列名

如何在连接字符串中将 Access DB 从 ISO-8859-2 更改为 UTF-8?

在 ASP.NET 应用程序的生产环境中将 x86 更改为 x64 dll

有没有办法在 Asp.Net Core Identity 中将 PasswordHash 的数据类型从字符串更改为字节数组