2014-04-28 11 views
5

Mam następujący kod do konwertowania ciąg na datetime ..łańcuch konwersji datetime użyciu System.Globalization.CultureInfo.InvariantCulture

string updateDateTime = "1398398552695"; 

double temp = Double.Parse(updateDateTime); 
TimeSpan sp = TimeSpan.FromMilliseconds(temp); 
DateTime dt = new DateTime(1970, 1, 1).Add(sp); 
updateDateTime = dt.ToString("yyyy-MM-dd HH':'mm':'ss");//final date time 

string tt = dt.ToString("yyyy-MM-dd HH':'mm':'ss"); 
DateTime output1; 
DateTime.TryParseExact(tt, "yyyy-MM-dd HH':'mm':'ss", System.Globalization.CultureInfo.InvariantCulture,System.Globalization.DateTimeStyles.None,out output1); 

DateTime output2 = DateTime.ParseExact(tt, "yyyy-MM-dd HH':'mm':'ss", System.Globalization.CultureInfo.InvariantCulture); 

Console.WriteLine(dt); 
Console.WriteLine(tt); 
Console.WriteLine(output1); 
Console.WriteLine(output2); 

Jeśli widzimy wyjście to będzie coś takiego ..

25/04/2014 04:02:32//dt 
2014-04-25 04:02:32//tt 
25/04/2014 04:02:32//output1 
25/04/2014 04:02:32//output2 

Problem polega na tym, że jeśli widzimy output1 i output2, to w rzeczywistości nie daje wyniku w formacie rrrr-MM-dd i potrzebuję wartości w tym formacie, a w typie datetime tylko w bazie danych (MySQL) pole jest w DateTime Format. Tak więc chcę dane wyjściowe w formacie 2014-04-25 04:02:32, ale jest ciąg znaków i muszę go przekonwertować na datetime.

Uwaga: Istnieje wiele pytań związanych z tym problemem tutaj w stackoverflow ale moja reputacja nie wystarczy, aby wypowiedzieć się na nich, więc musiałem stworzyć ten nowy pytanie ..

Odpowiedz

2

Twój datetime pojawia się w ten sposób ze względu na swój Region Settings w Control Panel Format daty i czasu jest ustawiony w ten sposób.

Proszę przejść do Panelu sterowaniai wybrać Region aw karcie Formaty Wybierz prawidłową wartość, albo iść do Ustawienia dodatkowe, aby dostosować format daty i czasu.

0

odpowiedzią na ten problem jest ukryte w kodzie

tuż po tym kodzie

DateTime.TryParseExact(tt, "yyyy-MM-dd HH':'mm':'ss",System.Globalization.CultureInfo.InvariantCulture,System.Globalization.DateTimeStyles.None,out output1); 

dodać

string od1 = output1.ToString("yyyy-MM-dd HH':'mm':'ss"); 

Mam nadzieję, że to pomoże

Powiązane problemy