C# 修改应用程序范围内的日期时间显示
对于我们开发的应用程序,我们在应用程序中的任何地方都使用C# 修改应用程序范围内的日期时间显示,c#,.net,datetime,format,cultureinfo,C#,.net,Datetime,Format,Cultureinfo,对于我们开发的应用程序,我们在应用程序中的任何地方都使用“G”格式 我们希望对此格式稍作更改: 我们需要在第二个数字之后显示第一个数字 例: 29.07.2014 08:54:36.1 我们希望能够在CurrentCulture中对此进行更改 这是我们在当前文化中唯一想要改变的东西,因此,如果以前是这样,我们的格式如下: 2014/07/29 08:54:36上午 然后我们想要 2014/07/29 08:54:36.1上午 如果在我吃之前 29.07.2014 08:54:36 然后我们想要
“G”
格式
我们希望对此格式稍作更改:
我们需要在第二个数字之后显示第一个数字
例:
29.07.2014 08:54:36.1
我们希望能够在CurrentCulture
中对此进行更改
这是我们在当前文化中唯一想要改变的东西,因此,如果以前是这样,我们的格式如下:
2014/07/29 08:54:36上午
然后我们想要
2014/07/29 08:54:36.1上午
如果在我吃之前
29.07.2014 08:54:36
然后我们想要
29.07.2014 08:54:36.1
如果我们收到的DateTime
没有一个数字显示在这里(=0/10秒),那么最好不要显示这个数字。您可以为当前线程设置日期,并指定一个偏差:
我测试了这个,看起来除了“很高兴拥有”之外,它正在返回你想要的东西
我会为DateTime创建一个扩展方法,比如ToPrettyPrintStringg()或任何你想调用的方法,以你想要的格式返回日期,这样你就可以让它以你想要的方式在任何地方显示任何日期。创建一个简短的示例来演示你当前的问题可能会很有用,就像我说的,我只想强制显示第一个数字,其他部分(日期格式,…)不应更改。有了这个,我们将始终使用EN-US格式,如果我们有另一种格式(没有
/
分隔符?有24小时显示?)@J4N,对不起,我不明白你的意思。如果您不需要AM-PM,那么您可以使用其他区域性并取出tt。我们的应用程序分布在世界各地。如果一个美国用户使用它,我们希望他的格式+显示十分之一秒,如果我们有一个德国用户,我们希望他的格式+显示十分之一秒。根据您的建议,用户在大多数情况下都会拥有另一个国家的文化,除了一个国家。您认为我可以只替换部分模式吗?像`ss.f
的ss
应该是这样的,是的。@J4N:有没有试过这个方法?嗨,我刚刚完成了一些工作,以便能够接收具有这种粒度的数据,但我做的是:Replace(“ss”,“ss”+currentCultureInfo.NumberFormat.NumberDecimalSeparator+“f”)代码>
CultureInfo culture = Thread.CurrentThread.CurrentCulture.Clone();
change the culture.DateTimeFormat.LongTimePattern = "your pattern";
Thread.CurrentThread.CurrentCulture = culture;
string now = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.f tt", CultureInfo.GetCultureInfo("en-US"));