【问题标题】:Visual Studio change date & time formatVisual Studio 更改日期和时间格式
【发布时间】:2017-05-09 23:10:08
【问题描述】:

在 Visual Studio 2005/2008/2010/1012/2013 中工作时,日期和时间以 mm/dd/yyyy hh:MM:ss 格式显示。 有没有办法把它改成和电脑一样的设置??

我感兴趣的显示日期在 Watch 窗口中。我的系统不是英文的,但 Visual Studio 2005 安装是英文的。所以即使我有不同的日期格式,这个设置也不会影响 VS。

【问题讨论】:

  • 快速手表中的Date 是什么?那是自定义对象吗?
  • @MichalCiechan 在 vb.net 中使用日期而不是日期时间。

标签: visual-studio-2010 visual-studio visual-studio-2012 visual-studio-2013


【解决方案1】:

此行为是调试器内置的,在特定情况下它正在调试用 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() 可以采用格式化字符。

【讨论】:

    【解决方案2】:

    考虑到只有 .ToString() 受到影响,你确定吗

    Thread.CurrentThread.CurrentCulture

    没有被覆盖或默认为不同于瑞典文化的东西吗?

    【讨论】:

      【解决方案3】:

      在“控制面板\所有控制面板项\区域和语言”中,在“格式”选项卡上,单击“其他设置...”按钮。 Visual Studio 2008 调试器使用“自定义格式”的“日期”选项卡中的“短日期:”来格式化日期。

      Customize Format

      QuickWatch

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-23
        • 2013-06-29
        • 2017-05-13
        • 2015-08-04
        相关资源
        最近更新 更多