C#日期时间格式中的单引号是什么意思?


Answers:


76

这是一个文字字符串定界符

单引号之间的任何内容都将解释为文字字符,而不会解释为自定义格式的字符串。

它们等效于使用反斜杠进行转义:dd'T'HH与相同dd\THH

在您的字符串中yyyy'-'MM'-'dd'T'HH':'mm':'ss-和不需要引号T,因为它们不是自定义格式的字符串,因此始终会被解释为字符串文字。但是: 是格式说明符,它的计算结果是适合当前区域性的时间分隔符。引用为':'意味着:无论当前文化如何,都将始终使用文字字符。


2

知道这与Windows GetDateFormat函数使用的格式相同是很有用的。您使用撇号来表示要插入到结果字符串中的一些文字。

有关字符串格式代码的更多文档,请参见:

在您的字符串中表明它确实要添加连字符,冒号和T字符:

yyyy '-'MM '-'dd 'T'HH ':'mm ':'ss

通常,您不希望用字面的连字符(-)或冒号(:)甚至斜杠(/)构造日期/时间。因为对于不使用斜杠和冒号构造日期/时间的文化,这是错误的:

  • 10/22/2019 101:19∶54ᴀᴍ
        1. 10:19:54
  • 2019.10.22 10:19:54
  • 2019-10-22 10.19.54
  • 2019-10-22 10:19:54
  • 2019-10-22 10:19:54上午
  • 2019-10-22ཆུ་ཚོད་10:19:54སྔ་ཆ་
  • 2019-10-22오전10:19:54
      1. 2019 10:19:54
        1. 10:19:54
  • 22.10.19 10:19:54
  • 19.10.19ý。10:19:54
  • 22.10.2019 10.19.54
  • 22.10.2019 10:19:54
  • 22.10.2019 10:19:54下午
  • 2019年10月22日 10:19:54
  • 2019年10月22日。10:19:54
  • 19-22-10-19 10.19.54
  • 19-22-10-19上午10.19.54
  • 22-10-19 10:19:54
  • 22-10-19ਸਵੇਰ10:19:54
  • 22-10-2019 10:19:54
  • 22-10-2019ৰাতিপু10:19:54
  • 22-окт。19 10:19:54
  • 23/02/41 10:19:54ص
  • 30/07/1398 10:19:54ق.ظ

如果要指出,您将要做什么:

  • “在这里应放置日期分隔符”
  • “在这里应该放置时间分隔符”

是使用特殊的:

  • 日期分隔符替换字符(/)
  • 时间分隔符替换字符(:)

并构造如下格式:

dd / yyyy / MM ss:HH:mm

我不知道需要什么业务才能将日期显示为:

  • 22/2019/10 37:10:24
  • 22-2019-10 37∶10∶24
  • 22 // 2019 // 10 37 :: 10 :: 24
      1. 10 37∶10∶24

但是这样,本地化器将插入区域性的正确日期和时间分隔符。

而如果你从字面上要求/-:

  • dd '/'yyyy '/'MM ss ':'HH ':'mm

您将得到:

  • 22/2019/10 37:10:24

而不是:

  • 22-2019-10 37∶10∶24

我不认为.NET的日期和时间格式字符串与相同GetDateFormat。也许类似,但例如的含义yyyyy不同。鉴于这个问题引起了人们的极大关注,并且与C#/有关,我建议更正此声明并链接到.NET文档。
canton7
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.