2009-11-20 7 views
0

J'ai une chaîne de date au format "08/1999" Je veux obtenir la première date du mois correspondant. par exemple: dans ce cas 08/01/1999. C'est simple pour la culture en-Us. Je casse la chaîne, ajoute "01" dans la chaîne pour obtenir 08/01/1999 et ensuite DateTime.Parse (datestring) mais ceci est valide pour la culture en-US seulement.Récupère DateTime Obj du format "mm/aaaa" Date string

Comment puis-je faire cela pour une culture différente?

Mes dates seront toujours au format mm/aaaa. et j'essaye d'obtenir un obj de DataTime de cette dateString.

+1

Est-ce une question C#? Si oui, précisez-le dans vos tags, vous obtiendrez les bonnes personnes intéressées plus rapidement. Eh bien, peut-être. –

+0

Avez-vous une autre culture en tête? Vous ne savez pas quel type de langage d'application vous utilisez, mais il est peut-être capable de convertir les dates et l'heure en fonction du paramètre sur le serveur \ pc. –

+0

C'est une question C#. – ssal

Répondre

7

Utilisez la méthode ParseExact. Notez que les M en haut sont pour les mois et les M en bas pour les minutes.

string dateToConvert = "08/1999"; 
string format = "MM/yyyy"; 
CultureInfo provider = CultureInfo.InvariantCulture; 

DateTime result = DateTime.ParseExact(dateToConvert, format, provider); 

Sortie:

{1999-08-01 00:00:00} 

Vous pouvez également utiliser Convert.ToDateTime et Parse méthodes. Elle produira le même résultat, mais de manière Implicite:

DateTime result = Convert.ToDateTime(dateToConvert, provider); // Output: {1999-08-01 00:00:00} 
DateTime result = DateTime.Parse(dateToConvert, provider); // Output: {1999-08-01 00:00:00} 

En savoir plus:

3

je brise la chaîne, append « 01 » dans la chaîne pour obtenir 08/01/1999 puis DateTime.Parse (DateString)

C'est une façon très longue haleine pour le faire. Simplement ceci fonctionnera:

DateTime.Parse("08/1999")

Comment puis-je faire pour la culture différente?

Si votre chaîne est toujours dans ce format, faites ceci:

DateTime.Parse("08/1999", CultureInfo.InvariantCulture)

3

Je ne suis pas sûr si je comprends bien votre question, mais vous pouvez essayer passer CultureInfo.InvariantCulture si vous voulez forcer le format de date des États-Unis quels que soient les paramètres régionaux de l'ordinateur client:

DateTime.Parse("08/1999", System.Globalization.CultureInfo.InvariantCulture)