使用自定义格式的撇号''作为日期

Amm*_*hdi 5 c# datetime

在Microsoft C#的文档中说

要更改特定日期和时间字符串的时间分隔符,请在文字字符串分隔符中指定分隔符.例如,自定义格式字符串hh'_'dd'_'ss生成一个结果字符串,其中"_"(下划线)始终用作时间分隔符.

在我的代码中,我尝试使用分隔符为Date,有两种方式有和没有Apostrophe如图所示,但结果对于两个输出都是相同的!

随着撇号

var __Date = new DateTime(1998, 07, 8, 07, 5, 1).ToString("yyyy'-'MM'-'dd hh':'mm':'ss");
Run Code Online (Sandbox Code Playgroud)

输出为:1998-07-08 07:05:01

没有撇号

var _Date = new DateTime(1998,07,8,07,5,1).ToString("yyyy-MM-dd hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)

输出为:1998-07-08 07:05:01

有人可以告诉我在文档中日期分隔符中Apostrophe的目的是什么?

Son*_*nül 7

:自定义格式说明有特殊含义:

用当前的培养物或提供的培养时间分离器代替我.

这意味着,如果您使用的文化具有:a TimeSeparator,那么:将替换TimeSeparator为输出中的当前文化.无论您当前的培养时间分隔符是否存在,这些撇号都可以逃脱您的时间分隔符:.

无论你现在的文化是什么,你的第一个代码都会产生:输出.TimeSeparator

只有当前文化具有的时候,您的第二个代码才会生成:输出.:TimeSeparator

例如,ml-IN文化确实有.一个TimeSeparator(至少在.NET框架4.6.1和了解,这些隔板可以在.NET框架或OS版本变化).如果你改变你CurrentCultureml-IN,你会得到1998-07-08 07.05.01一个输出.

这些规则都是相同/自定义格式说明,以及一个DateSeparator.