簡體   English   中英

如何refesh短時間字符串(C#DateTime.Now)?

[英]How to refesh short time string (C# DateTime.Now)?

我正在使用Windows窗體制作記事本程序,並且日期/時間功能有問題:

我的系統時間和日期格式(短)是hh:mm tt M / d / yyyy。 當我在記事本中按F5(日期/時間功能)時,它會添加一個時間字符串,格式如上所示。 然后我將系統時間和日期格式更改為HH:mm dd-MMM-YY並在記事本中再次按F5,它會添加另一個時間字符串,其格式為我已更改。

但是使用我的Notepad項目(我使用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事件來執行此SystemEvents.UserPreferenceChanged 回答更多信息: 如何在用戶更改系統文化時接收事件

請參閱SystemEvents類,UserPreferenceChang *事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM