gpt4 book ai didi

c# 日期格式不显示本地格式

转载 作者:行者123 更新时间:2023-11-30 21:58:51 24 4
gpt4 key购买 nike

在我的本地计算机上,我的 Thread.CurrentThread.CurrentCulture 返回正确的本地文化 (en-GB)。日期格式设置为 yyyy-MM-dd。

在代码中,当我运行时:

value.ToShortDateString()

它返回 "6/2/2010" (m/d/yyyy)。

如何让它根据本地文化显示?我不想硬编码一种格式,因为该应用程序将部署在不同的国家/地区,因此它应该根据本地 pc 设置工作。我还在 en-US 上进行了测试,结果显示相同。

我的“值”变量的值为:

{6/2/2010 12:00:00 AM}
Date: {6/2/2010 12:00:00 AM}
Day: 2
DayOfWeek: Wednesday
DayOfYear: 153
Hour: 0
Kind: Unspecified
Millisecond: 0
Minute: 0
Month: 6
Second: 0
Ticks: 634110336000000000
TimeOfDay: {00:00:00}
Year: 2010

最佳答案

只需调用 ToString() 而不是 ToShortDateString() 并指定您的日期格式:

    DateTimeFormatInfo formatInfo = CultureInfo.CurrentUICulture.DateTimeFormat;
var value = DateTime.Now.ToString(formatInfo);

尽管 ToShortDateString() 应该是文化敏感的 as per the documentation :

The value of the current DateTime object is formatted using the pattern defined by the DateTimeFormatInfo.ShortDatePattern property associated with the current thread culture. The return value is identical to the value returned by specifying the "d" standard DateTime format string with the ToString(String) method.

但是,如果 CurrentCulture 和 CurrentUICulture 不同,它可能会返回错误的格式。为了安全起见,我在代码示例中使用了 CurrentUICulture,因为它基于用户的 UI 文化设置 - 例如美国系统等英国语言包,应该是正确的。

关于c# 日期格式不显示本地格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29794543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com