如何在.Net中将文化改变为DateTimepicker或日历控件

15

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

6个回答

10

1
知识库文章的链接已经失效了... :( 他们现在应该修复它了...已经过去8年了... - Teysz
这两个链接现在都无法访问。 - derekantrican
从Webarchive的KB文章https://web.archive.org/web/20110718101517/http://support.microsoft.com/kb/889834翻译如下: - Amitd

5

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

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

返回“dd-MMM-yy”对我有什么帮助来改变文化? - John

0
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("fr");
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture;

4
这不会改变Windows的区域设置,只会改变当前界面文化和当前线程的文化(正如属性名称所示)。但是DateTimePicker控件仅查找Windows的区域设置,所以这并不重要。 - Nenad Dobrilovic

0

对于 DateTimePicker

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

3
设置格式并不是文化所控制的唯一事物。它还控制着许多其他事情,例如每周的第一天是星期日还是星期一。 - Kibbee
1
格式仅用于显示当前日期,但如果您想选择它,则datetimepicker控件将根据区域设置显示完整日期。 - Nenad Dobrilovic

-1

我觉得有绕路。

  1. 设置事件处理程序 "ValueChanged"
  2. 代码

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

1
GetDateTimeFormats() 方法不会生成格式字符串(可用于格式化),而是生成已格式化的字符串(格式化的结果)。将这样的字符串分配给.CustomFormat 没有意义。我想投反对票,但我自己声望不够... - Peter B

-1
使用Telerik RadDateTimePicker并编写以下代码,在InitializeComponent()之后,将"fa-IR"替换为您的文化。
Application.CurrentCulture = new CultureInfo("fa-IR"); 
radDateTimePicker1.Format = DateTimePickerFormat.Custom;
radDateTimePicker1.CustomFormat = Application.CurrentCulture.DateTimeFormat.ShortDatePattern;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接