Convertir AAAAMMJJ chaîne à JJ/MM/AAAA chaîne
J'ai une date qui est stocké comme une chaîne de caractères dans le format YYYYDDMM. Je voudrais afficher cette valeur dans un " MM/JJ/AAAA format. Je suis à la programmation en c#. Le code actuel que j'utilise est la suivante:
txtOC31.Text = dr["OC31"].ToString().Trim();
strOC31date = dr["OC31DATE"].ToString().Trim();
DateTime date31 = DateTime.Parse(strOC31date);
strOC31date = String.Format("{0:MM/dd/yyyy}", date31);
Cependant, je reçois un message d'erreur parce que le format AAAAMMJJ de la chaîne (strOC31date) n'est pas reconnu comme un datetime valide.
Merci de ne pas ré-utiliser des variables. (Dans votre cas
Les quatre premiers chiffres de l'année. Le découper et de l'analyser pour un int. Les deux suivantes sont les mois. Découper et de les analyser pour un int. Les deux derniers sont de la journée. Découper et de les analyser à un int. Les utiliser pour créer un nouveau type DateTime. Il n'est pas beaucoup plus facile que cela.
strOC31date = dr["OC31DATE"].ToString().Trim(), quel est le contenu de cette ?
Brandon, le contenu de ce champ est une chaîne AAAAMMJJ; par exemple, 20120807
strOC31date
) Il n'est pas très cher pour en définir de nouvelles, surtout si elles sont de courtes chaînes de caractères.Les quatre premiers chiffres de l'année. Le découper et de l'analyser pour un int. Les deux suivantes sont les mois. Découper et de les analyser pour un int. Les deux derniers sont de la journée. Découper et de les analyser à un int. Les utiliser pour créer un nouveau type DateTime. Il n'est pas beaucoup plus facile que cela.
strOC31date = dr["OC31DATE"].ToString().Trim(), quel est le contenu de cette ?
Brandon, le contenu de ce champ est une chaîne AAAAMMJJ; par exemple, 20120807
OriginalL'auteur JTRookie86 | 2012-08-07
Vous devez vous connecter pour publier un commentaire.
DateTime.ParseExact avec un exemple
/
dans la chaîne de format sera traduit à la date de séparateur de chaîne du thread courant. Si la culture de votre thread actuel arrive à avoir/
comme séparateur de date, tout est très bien. Mais si vous définissez la culture, par exemplenew CultureInfo("da-DK")
(danois (Danemark) avant la dernière ligne, puis/
sera transformé à-
. Pour éviter cela, une approche consiste à échapper à la slash, c'est à dire dired.ToString(@"MM\/dd\/yyyy")
.OriginalL'auteur Steve
Utilisation
ParseExact()
(MSDN) quand la chaîne que vous essayez d'analyser n'est pas dans l'un des formats standard. Cela vous permettra d'analyser un format personnalisé et sera un peu plus efficace (j'ai les comparer dans un billet de blog ici).Passant
null
pour le format de fournisseur par défautDateTimeFormatInfo.CurrentInfo
et est sans danger, mais vous voulez probablement l'invariant de la culture à la place:Puis votre code fonctionne.
OriginalL'auteur James Michael Hare
Au lieu de
DateTime.Parse(strOC31date);
utilisationDateTime.ParseExact()
méthode, qui prend format comme l'un des paramètres.OriginalL'auteur Leon
Vous voulez la méthode DateTime.ParseExact.
OriginalL'auteur Chris