Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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# 修改应用程序范围内的日期时间显示_C#_.net_Datetime_Format_Cultureinfo - Fatal编程技术网

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"));