In docs for Microsoft C# says
To change the time separator for a particular date and time string, specify the separator character within a literal string delimiter. For example, the custom format string
hh'_'dd'_'ssproduces a result string in which "_" (an underscore) is always used as the time separator.
In my code i tried to use separator for Date with both ways with and without Apostrophe as shown but the Result were the same for both outputs !
With Apostrophe
var __Date = new DateTime(1998, 07, 8, 07, 5, 1).ToString("yyyy'-'MM'-'dd hh':'mm':'ss");
the output as : 1998-07-08 07:05:01
Without Apostrophe
var _Date = new DateTime(1998,07,8,07,5,1).ToString("yyyy-MM-dd hh:mm:ss");
the output as : 1998-07-08 07:05:01
Could some one really tell me what is the purpose for Apostrophe in the separator for date in docs ?
The : custom format specifier has special meaning as: 
replace me with the current culture or supplied culture time separator.
That means, if you use a culture that doesn't have : as a TimeSeparator, that : replaced with your current culture's TimeSeparator in the output. Those apostrophes are there to escape your time separator no matter your current culture time separator is : or not.
Your first code generates : as an output no matter what your current culture's TimeSeparator since you escape them.
Your second code generates : as an output only if your current culture has : as a TimeSeparator.
For example, ml-IN culture does have . as a TimeSeparator (at least in .net framework 4.6.1 and be aware, those separators might change over .net framework or os version). If you change your CurrentCulture to ml-IN, you will get 1998-07-08 07.05.01 as an output.
These rules are the same for the / custom format specifier as well as a DateSeparator.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With