gpt4 book ai didi

c# - 如何刷新短时间字符串(C# DateTime.Now)?

转载 作者:太空狗 更新时间:2023-10-30 00:31:00 25 4
gpt4 key购买 nike

我正在使用 Windows 窗体制作一个记事本程序,但在日期/时间功能方面遇到了问题:

我的系统时间和日期格式(短)是 hh:mm tt M/d/yyyy。当我在记事本中按 F5(日期/时间功能)时,它会添加一个时间字符串,其格式如上。然后我将系统时间和日期格式更改为 HH:mm dd-MMM-YY 并在记事本中再次按 F5,它会添加另一个时间字符串,其格式已更改。

但是对于我的记事本项目(我使用 DateTime.Now.ToShortTimeString()DateTime.Now.ToShortDateString() 来执行此功能),我必须开始如果我想让格式在我的程序中生效,请重新执行程序,否则无论我按多少次F5,它都将使用第一种格式。

所以我想问问有没有办法解决这个问题。

我正在使用 VS 2013。

最佳答案

很好的问题。日期根据当前用户文化信息格式化,但信息由 .NET 缓存。您需要做的是通过预先调用 CultureInfo.ClearCachedData 方法强制 .NET 清除缓存。

更多信息在这里:https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.clearcacheddata(v=vs.80).aspx

另请注意,每次用户想要插入日期和时间时都清除缓存会以某种方式忽略缓存点(好吧,我有点夸张了)。当系统告诉您其配置已更改时,您只能清除缓存。您可以通过监听 SystemEvents.UserPreferenceChanged 事件来做到这一点。更多信息在此处回答:How to receive event when user changes system's culture

关于c# - 如何刷新短时间字符串(C# DateTime.Now)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31220218/

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