Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NET中是否有一个DateTime设置,可以根据区域性自动将格式设置为12或24小时时钟?_C#_.net_Datetime_Time_Datetime Format - Fatal编程技术网

C# NET中是否有一个DateTime设置,可以根据区域性自动将格式设置为12或24小时时钟?

C# NET中是否有一个DateTime设置,可以根据区域性自动将格式设置为12或24小时时钟?,c#,.net,datetime,time,datetime-format,C#,.net,Datetime,Time,Datetime Format,基本上,这个问题说明了一切:我想能够设置一个日期和时间的格式,除了12/24时钟设置,它应该从文化设置中获取 例如,对于en-US,我想要h:mm tt(下午3:34),对于fr-frh:mm(15:34) 我是否应该手动编写代码: string format = CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern.Contains("tt") ? "h:mm tt" : "H:m

基本上,这个问题说明了一切:我想能够设置一个日期和时间的格式,除了12/24时钟设置,它应该从文化设置中获取

例如,对于en-US,我想要
h:mm tt
(下午3:34),对于fr-fr
h:mm
(15:34)

我是否应该手动编写代码:

string format = CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern.Contains("tt") ? "h:mm tt" : "H:mm"
还是有更优雅的方式


这里有一个类似的问题:但作者想强制使用AM/PM时钟,但保留时间/日期本地格式不变,这与我的问题相反。

有几种不同的方法来解决这个问题:

  • 您可以按照建议执行,测试
    tt
    是否存在:

    cultureInfo.DateTimeFormat.ShortTimePattern.Contains("tt")
    
  • 同样,您可以测试AM或PM指示符字符串是否存在。(我认为这稍微可靠一些。)

  • 您可以使用
    ShortTimePattern
    替换任何要修改或删除的令牌

  • 您可以按原样使用
    ShortTimePattern
    ,并相信该格式适合用户


有几种不同的方法来解决这个问题:

  • 您可以按照建议执行,测试
    tt
    是否存在:

    cultureInfo.DateTimeFormat.ShortTimePattern.Contains("tt")
    
  • 同样,您可以测试AM或PM指示符字符串是否存在。(我认为这稍微可靠一些。)

  • 您可以使用
    ShortTimePattern
    替换任何要修改或删除的令牌

  • 您可以按原样使用
    ShortTimePattern
    ,并相信该格式适合用户


这里有什么帮助吗:-您将区域性作为参数传递给ToString方法-请参阅“t格式说明符”了解您的特定示例如果您找到更优雅的方法,我会感兴趣的!我们最终所做的(几年前,也许事情已经改变了)正是您正在做的-在短时间模式中检查“tt”说明符。设置和属性到所需的区域性。这里有什么帮助吗:-您将区域性作为参数传递给ToString方法-请参阅“t格式说明符”如果你能找到一种更优雅的方式,我会感兴趣的!我们最终所做的(几年前,所以可能事情已经改变了)正是您正在做的-检查短时间模式中的“tt”说明符。将和属性设置为所需的区域性。