2010-07-30 5 views
11

J'ai un grand ensemble (plus de 100 millions d'observations) avec la date représentée comme format de chaîne personnalisé. Nous n'avons pas généré les chaînes de date, j'ai juste besoin de convertir la chaîne de date en un type datetime. Comment puis-je convertir une date de chaîne (par exemple, 12 juin 2010) en date-heure? Mes pensées sont d'analyser la chaîne en composants, de les assembler dans le bon ordre et de transmettre cette chaîne au constructeur de datetime. Existe-t-il un moyen de transmettre à datetime() une chaîne de format de date personnalisée à la place?Conversion d'un format de date personnalisé (chaîne) en datetime

Merci!

Répondre

22

Jetez un coup d'œil à DateTime.ParseExact, par ex.

var dateTime = DateTime.ParseExact(
    "12 JUN 2010", 
    "dd MMM yyyy", 
    CultureInfo.InvariantCulture); 

Vous pouvez également spécifier un quatrième paramètre pour définir la Kind de date/heure, par exemple si elles sont date UTC/fois alors vous voudrez probablement spécifier DateTimeStyles.AssumeUniversal.

+0

Je viens d'apprendre quelque chose de nouveau, +1 –

+3

+1, je viens d'apprendre deux nouvelles choses, l'une d'entre elles étant Jimmy Hoffa est vivant et bien – LittleBobbyTables

0

Cette chaîne DateTime est valable pour DateTime.Parse() (ou .TryParse())

En ce qui concerne une chaîne vraiment personnalisée qui .Parse() ne peut pas gérer, vous avez probablement raison, vous auriez besoin de tirer votre chaîne à part et le réassembler d'une manière utile.