简体   繁体   中英

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 required 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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM