yogi
yogi

Reputation: 19591

Datetime.ToString() C# not working as expected

From msdn it seems like I can create my own format with Datetime.ToString() method by using M, m, d, y etc. But when I tried one it didn't worked as expected, snipped below is the issue.

enter image description here

I was expecting 7/29/2015 but received 7-29-2015 !!! why?

Upvotes: 9

Views: 2143

Answers (1)

Soner Gönül
Soner Gönül

Reputation: 98750

Looks like your DateSeparator of your CurrentCulture is - and that's why / character replace itself to it.

"/" custom format specifier has a special meaning as replace me with current culture or supplied culture date separator.

You have a few options, you either escape it with single quotes (or \/ in a verbatim string literal) or use a culture that has / as a DateSeparator like InvariantCulture.

string s = DateTime.Now.ToString("M'/'d'/'yyyy");
string s = DateTime.Now.ToString(@"M\/d\/yyyy");
string s = DateTime.Now.ToString("M/d/yyyy", CultureInfo.InvariantCulture);

Upvotes: 22

Related Questions