在 Visual Studio 2005/2008/2010/1012/2013 中工作时,日期和时间以 mm/dd/yyyy hh:MM:ss 格式显示。有没有办法将其更改为与计算机相同的设置?
我感兴趣的显示日期在 Watch 窗口中。我的系统不是英文的,但 Visual Studio 2005 安装是英文的。所以即使我有不同的日期格式,这个设置也不会影响 VS。
在 Visual Studio 2005/2008/2010/1012/2013 中工作时,日期和时间以 mm/dd/yyyy hh:MM:ss 格式显示。有没有办法将其更改为与计算机相同的设置?
我感兴趣的显示日期在 Watch 窗口中。我的系统不是英文的,但 Visual Studio 2005 安装是英文的。所以即使我有不同的日期格式,这个设置也不会影响 VS。
此行为是调试器内置的,在特定情况下,它正在调试用 VB.NET 编写的程序。#
从截图中的外观可见。没有什么特别的,调试器在许多情况下会努力使其输出与您在程序中编写它的方式相同。以 C# 为例,包含嵌入双引号的字符串将显示在它们之前带有反斜杠。实际上并不存在于字符串中,但是当您在源代码中声明这样的字符串文字时是必需的。
因此 VB.NET 语言规则适用于您看到的文字字符串的格式。在语言规范的第 2.4.6 章中进行了描述,它对文化不敏感。当然不可能,当你在中国的同事编译它时,你的源代码不会产生不同的程序。我将复制/粘贴生产规则:
DateLiteral ::= # [ Whitespace+ ] DateOrTime [ Whitespace+ ] #
DateOrTime ::=
DateValue Whitespace+ TimeValue |
DateValue |
TimeValue
DateValue ::=
MonthValue / DayValue / YearValue |
MonthValue – DayValue - YearValue
TimeValue ::=
HourValue : MinuteValue [ : SecondValue ] [ WhiteSpace+ ] [ AMPM ] |
HourValue [ WhiteSpace+ ] AMPM
MonthValue ::= IntLiteral
DayValue ::= IntLiteral
YearValue ::= IntLiteral
HourValue ::= IntLiteral
MinuteValue ::= IntLiteral
SecondValue ::= IntLiteral
AMPM ::= AM | PM
所以它总是月/日/年。如果您需要在将其转换为字符串时查看它的外观,则必须在监视表达式中使用适当的字符串转换。像CStr(Date.Now)
等等一样,要注意有很多方法可以做到这一点,因为 DateTime.ToString() 可以采用格式化字符。
考虑到只有 .ToString() 受到影响,你确定
Thread.CurrentThread.CurrentCulture
是不是被覆盖或默认为不同于瑞典文化的东西?