Comment Convertir une Date en Chaîne de caractères au Format “jj/MM/aaaa” à l'OS de Culture Actuels de Format de Date
Une chaîne a de la valeur dans "jj/MM/aaaa" format "04/10/2012". Ce doit être converti à une Date w.r.t Culture Actuelle de OS.
J'ai essayé ci-dessous chaîne avec coréen de la Culture Actuelle de l'OS dans lequel le format de date est aaaa-MM-jj, mon code n'est pas d'avoir une valeur de Mois, il échange la valeur du mois jour:
D'entrée: "04/10/2012"
Sortie: 2012-04-10
Code:
DateTime DT;
string dt = "04/10/2012";
DateTimeFormatInfo DateInfo = CultureInfo.CurrentCulture.DateTimeFormat;
DT = Convert.ToDateTime(String.Format ("{0:"+DateInfo .ShortDatePattern +"}", dt.Trim ()), CultureInfo .CurrentCulture);
MessageBox.Show("Date: " + DT.ToShortDateString());
Comment je peux résoudre ce problème ?
Reportez-vous à .Net Standard 2 échantillons
OriginalL'auteur Itz.Irshad | 2012-10-04
Vous devez vous connecter pour publier un commentaire.
Il me semble que vous devez l'analyser avec un format fixe, je pense que vous êtes actuellement à l'analyse avec un autre format "jj/MM/aaaa" et parce que la date est ambiguë (comme dans, le mois et le jour peuvent être interchangés sans causer des dates non valides) le format est simplement en changeant le mois et le jour de valeur. Lorsque vous ensuite de passer à la sortie, il semble inversé.
Utilisation
DateTime.ParseExact
à la force de l'analyse de format, puis utilisez la fonction intégrée dans la culture actuelle chaîne sensible à la méthode de sortie surDateTime
pour obtenir une chaîne formatée:OriginalL'auteur Adam Houldsworth
Depuis votre chaîne d'entrée est dans un format fixe, vous devez l'analyser dans ce format:
OriginalL'auteur Matthew Watson
Si vous chaîne a le format
dd/MM/yyyy
alors vous ont à utiliserDateTime.ParseExact
avec le format spécifié:Autre chose va essayer d'interpréter la chaîne en fonction de la culture actuelle - qui, comme vous l'avez constaté, échouera.
OriginalL'auteur ChrisF
pourquoi ne pas utiliser
ToShortDateTimeString()
OriginalL'auteur Radek82