2010-07-14 6 views
1

i ont ce format texte:comment convertir du texte à ce jour?

8/27/2009 8:23:06 AM 

Thu Aug 27 12:42:22 2009 

08/12/2009 20:22 

je dois obtenir ceci: jj/mm/aaaa

comment faire en code C# Winform?

remercient à l'avance

+0

Oui :) et s'il vous plaît commenter si vous avez besoin d'information ou vous pourriez utiliser les réponses. –

Répondre

5

Vous pourriez analyser avec DateTime.Parse (...) et après bois imprimer avec DateTime.ToString().

var date1 = DateTime.Parse("8/27/2009 8:23:06 AM", CultureInfo.GetCultureInfo("en-US")); 
var date2 = DateTime.Parse("Thu Aug 27 2009 12:42:22", CultureInfo.GetCultureInfo("en-US")); //Edited the date a little 
var date3 = DateTime.Parse("08/12/2009 20:22", CultureInfo.GetCultureInfo("en-US")); 

Console.WriteLine(date1.ToString("dd/MM/yyyy", CultureInfo.GetCultureInfo("en-US"))); 
Console.WriteLine(date2.ToString("dd/MM/yyyy", CultureInfo.GetCultureInfo("en-US"))); 
Console.WriteLine(date3.ToString("dd/MM/yyyy", CultureInfo.GetCultureInfo("en-US"))); 

Une partie est peut-être redondante pour vous. Je vis à DK et j'ai la culture DK donc je ne peux pas analyser les mêmes chaînes que si vous avez un ordinateur américain. Par conséquent j'ai mis la culture explicite. Si vous avez la culture américaine par la norme ou si vous voulez adapter l'application à d'autres cultures, vous pouvez utiliser:

//for parsing 
var date1 = DateTime.Parse("A date"); 
//for printing 
date1.ToShortDateString(); 

Comme fletcher, vous pouvez utiliser DateTime.TryParse à la place si vous analysez les entrées utilisateur ou les données où vous vous attendez à des défauts dans les chaînes de date fournies.

2

Pour ces formats particuliers j'utiliserais la fonction DateTime.TryParse. Je suis sûr que seule la dernière chaîne que vous avez fournie sera acceptée par l'opération d'analyse, la fonction TryParse retournera une valeur booléenne indiquant le succès de l'opération. Une fois que vous avez l'objet DateTime résultant, vous pouvez ensuite sortir une chaîne au format ShortDate en utilisant la fonction ToShortDateString ou vous pouvez spécifier un format différent si vous le souhaitez.

DateTime date = new DateTime();    

bool parseSucceeded = DateTime.TryParse("08/12/2009 20:22", out date); 

if(parseSucceeded) 
Console.WriteLine(date.ToShortDateString()); 
+0

+1 Bon point avec TryParse :) J'ai emprunté ça dans ma réponse. Mais en réalité le premier réussit et le second le fait si vous déplacez un peu "2009". –