Escaping single quote in String.Format()
-
20-09-2019 - |
Question
I have been all over the 'tubes and I can't figure this one out. Might be simple.
The following String.Format
call:
return dt.ToString("MMM d yy 'at' H:mmm");
Correctly returns this:
Sep 23 08 at 12:57
Now let's say I want to add a single quote before the year, to return this:
Sep 23 '08 at 12:57
Since the single quote is a reserved escape character, how do I escape the single quote to get it to display?
I have tried double, triple, and quad single quotes, with no luck.
Solution
You can escape it using a backslash which you will have to escape. Either
return dt.ToString(@"MMM d \'yy 'at' H:mmm");
or
return dt.ToString("MMM d \\'yy 'at' H:mmm");
OTHER TIPS
You could just use the HTML entity, if it's for HTML.
-- Edit
'
-- Edit
Just to make this post not wrong, as everyone else has noted, escaping works fine :)
string s = t.ToString("MMM d \\'yy 'at' H:mmm");
And that's the last time I don't test something based on who is posting :)
I don't like the C# @ strings unless I really have to use them so I would actually go with this.
return dt.ToString("MMM d \\'yy 'at' H:mmm");
It's just a preference though for which you find easier to "read".