开发者

DateTime: how to display as DD.MM.YYYY?

I've got DateTime variable and i want to convert it to string "DD.MM.YYYY" Please note, the values must be separated by "dot" sign.

Of course I can do manual string composition. But I wonder if I can use DateTime.ToString() to do req开发者_开发百科uired conversion.


Yes, you can:

string formatted = dt.ToString("dd'.'MM'.'yyyy");

Now in this case the quotes aren't actually required, as custom date/time format strings don't interpret dot in any special way. However, I like to make it explicit - if change '.' for ':' for example, then while it's quoted it will stay with the explicit character, but unquoted it would be "the culture-specific time separator". It wasn't entirely obvious to me whether "." would be interpreted as "the culture-specific decimal separator" or not, hence the quoting. You may feel that's over the top, of course - it's entirely your decision.

You may also want to specify the invariant culture, just to remove any other traces of doubt:

string formatted = dt.ToString("dd'.'MM'.'yyyy", CultureInfo.InvariantCulture);

(At that point the quotes around the dot become less relevant, as "." is the decimal separator in the invariant culture anyway.)


Yes, you can use DateTime.ToString like this:

myDateVariable.ToString("dd.MM.yyyy");

Note that you have to use capital MM here, since mm evaluates to minutes instead of months.


Here's an alternative for you:

DateTime.Now.ToString("d", new CultureInfo("de-DE"))

German's use . as the date separator.


You can format the date like this:

date.ToString("dd.MM.yyyy")

When formatting numbers the period . will change depending on the CultureInfo used, but not when formatting dates.

If you are verifying your code against the code analysis rule CA1304: Specify CultureInfo you will have to use the invariant culture even though it doesn't matter for this particular format:

date.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜