【发布时间】:2015-01-19 15:31:57
【问题描述】:
考虑以下控制台应用程序代码:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
DateTime date = new DateTime(2014, 01, 19);
Console.WriteLine("{0}", date); // Prints 19/01/2014
Debug.WriteLine("{0}", date); // Prints 01/19/2014
Debug.WriteLine(date); // Prints 19/01/2014
如 cmets 中所述,Console.WriteLine() 打印 19/01/2014,而 Debug.WriteLine() 打印 01/19/2014。
更糟糕的是 - Debug.WriteLine("{0}", date) 提供与 Debug.WriteLine(date) 不同的输出...
Debug.WriteLine() 是否会忽略线程的文化设置?
有没有办法让Debug.WriteLine() 使用线程的文化设置?还是我必须使用String.Format() 并将结果传递给Debug.WriteLine()?
(注意:我在 Windows 8.1 64 位 en-GB 上运行此程序,使用 Visual Studio 2013 和 .Net 4.51 以及调试 AnyCPU 版本。)
【问题讨论】:
-
@TimSchmelter:这与这个问题无关。
-
@TimSchmelter - 用于更改目的地,损坏(格式化)已经完成。
标签: c# .net culture date-formatting