web-dev-qa-db-fra.com

pourquoi DateTime.ToString ("jj/mm/aaaa") me donne jj-mm-aaaa?

Je veux que mon date/heure soit convertie en une chaîne au format "jj/mm/aaaa"

Chaque fois que je le convertis en utilisant DateTime.ToString("dd/MM/yyyy"), j'obtiens dd-MM-yyyy à la place.

Y a-t-il une sorte d'informations culturelles que je dois définir?

139
Diskdrive

La barre oblique est un délimiteur de date, qui utilisera donc le délimiteur de date de culture actuel.

Si vous voulez coder en dur pour toujours utiliser des slash, vous pouvez faire quelque chose comme ça:

DateTime.ToString("dd'/'MM'/'yyyy")
216
Bojan Bjelic

Passez CultureInfo.InvariantCulture en tant que deuxième paramètre de DateTime, il renverra la chaîne sous la forme souhaitée, même dans un format très spécial:

DateTime.Now.ToString("dd|MM|yyyy", CultureInfo.InvariantCulture)

reviendra: 28 | 02 | 2014

52
Liu Peng

Ajoutez CultureInfo.InvariantCulture comme argument:

using System.Globalization;

...

var dateTime = new DateTime(2016,8,16);
dateTime.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

Reviendra:

"16/08/2016"
8
Mikael Engver

Si vous utilisez MVC, tables, cela fonctionne comme ceci:

<td>@(((DateTime)detalle.fec).ToString("dd'/'MM'/'yyyy"))</td>
0
Maurico Bello