2017-06-26 4 views
1

je tente de convertir la chaîne de contrôle DateTimePicker int, mais quand je le lance erreur arriveImpossible de convertir la chaîne de contrôle DateTimePicker int

chaîne n'a pas été reconnu comme un DateTime valide.

J'utilise epoch pour convertir. Le format de DateTimePicker est D/M/YYYY. Ceci est mon code

public static double convertToEpoce(string date) 
    { 
     DateTime _datetime= DateTime.ParseExact(date, "D/M/YYYY HH:mm:ss", CultureInfo.CreateSpecificCulture("vi-VN")); ; 

     var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); 
     return Convert.ToDouble((_datetime - epoch).TotalSeconds); 
    } 

Répondre

1

Le spécificateur de format que vous utilisez n'est pas valide. Il devrait être d/M/yyyy HH:mm:ss dans le code C#. (DateTimePicker peut utiliser différentes spécificateurs.)

  • "d" Le jour du mois, de 1 à 31.

  • "M" Le mois, de 1 à 12.

  • "yyyy" L'année sous la forme d'un nombre à quatre chiffres.

Il n'y a pas de spécificateurs de format "D" ou "YYYY".

Pour la liste complète, voir Custom Date and Time Format Strings.

Pour l'exemple de travail, voir C# Fiddle.

1

Il n'est pas nécessaire d'analyser la valeur de DateTimePicker.Text.

Vous pouvez utiliser DateTimePicker.Value, qui renverra une valeur DateTime.

L'erreur que vous obtenez est due au mauvais spécificateur de format, comme déjà indiqué dans la réponse @ GeorgPatscheider.