【问题标题】:.net How to show time in correct format?.net 如何以正确的格式显示时间?
【发布时间】:2011-12-23 10:50:39
【问题描述】:

我有一个 VSTO Outlook 加载项。此插件显示带有 DateTimePicker 控件的 winforms 窗口,用于选择一天中的时间。我想设置类似于当前 Windows 时间格式的时间格式(如任务栏的时钟)。
为此,我使用以下代码:

this.dateTimePicker1.Format = DateTimePickerFormat.Custom;
this.dateTimePicker1.CustomFormat = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern;

在 Windows 区域和语言设置中,我在格式和位置中使用法语,在键盘和语言中使用英语。
因此,在我的表单中,我看到的是 7:00 而不是 19:00。
CurrentCulture、CurrentUICulture 和 InstalledUICulture 返回“h:mm tt”短时格式,并且文化名称为 en-US。
我的问题是如何确定 Windows 以法语格式 (HH:mm) 显示时间并以这种格式在 DateTimePicker 中显示时间?

--编辑
当我在单独的控制台应用程序中运行以下代码时

Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern); 
Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern); 
Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.FullDateTimePattern); 

它返回
HH:mm
HH:mm:ss
dddd d MMMM yyyy HH:mm:ss

在 Outlook 加载项中类似的代码返回美国格式:

h:mm tt
h:mm:ss tt
dddd, MMMM dd, yyyy h:mm:ss tt

Outlook 设置为使用默认的 Windows 语言(英语)。

【问题讨论】:

    标签: .net vsto datetimepicker cultureinfo datetime-format


    【解决方案1】:

    而不是使用自定义格式,你不能使用..

    this.dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Time;
    

    这应该以正确的格式显示时间(即用户选择的格式)

    --编辑

    如果你运行以下命令,你会得到什么?

    Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern);
    Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern);
    Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.FullDateTimePattern);
    

    将我的“区域和语言”区域设置为“法语(法国)”,我明白了。

    HH:mm
    HH:mm:ss
    dddd d MMMM yyyy HH:mm:ss
    

    【讨论】:

    • 谢谢,Rich,它有效。是否可以显示没有秒的时间?
    • 只是检查..当您使用上述自定义格式时,您还设置了 this.dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
    • 是的,当我使用 customformat 时,将 Format 属性设置为 Custom。我已经尝试过您的解决方案并且它有效,但它以 HH:mm:ss 格式显示时间。可以隐藏秒吗?
    【解决方案2】:

    要以 Windows 格式获取时间,请在单独的线程中显示表单。在 Outlook 线程中显示时,它需要 Outlook 文化设置。

    【讨论】:

      猜你喜欢
      • 2020-11-22
      • 2014-02-13
      • 1970-01-01
      • 2016-11-27
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多