2016-04-06 24 views
1

Farklı alanlar ile gelen bir SQL çıktısı var. Bu alanlardan birkaçı tarihler ve bunları zaman damgasına dönüştürmek istiyorum.Bir sql string çıktısını C ile zaman damgasına dönüştür C#

4/6/2016 9:00:00 PM 

Ve şuna benzer JSON dönüştürüldüğünde: tarihlerin çıkış bakmak nasıl veritabanından geldiği gibi İşte

opening_date":"4/6/2016 9:00:00 PM" 

Denedim SQL isteği çıkışını dönüştürmek için aşağıdaki

meeting_start_date = DateTime.ParseExact((string)((object[])((ArrayList)results)[i])[3].ToString(), "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture) 
ben here ne buldum göre

ama şu hatayı olsun

dolaylı 'string'

Ben işlevi kullanıyorum biçiminde bir sorun var, ya zaman damgasına SQL çıkışından dönüşüm yapmak için daha iyi bir yol yoktur tip 'System.DateTime' dönüştürülemez bu yüzden json çıkışına eklenebilir.

+0

zaten üzerinde ToString() kullanılan rağmen bir dize olarak değer döküm olan bu bölümünde (string)((object[])((ArrayList)results)[i])[3].ToString() yılında, bir yan not olarak öylesine

meeting_start_date = DateTime.ParseExact((string)((object[])((ArrayList)results)[i])[3].ToString(), "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture).ToString(); 

gibi bir dize değişkenine değer atamak için izin verecektir toplantı_start_date bir dize? Aksi halde, 'sonuçların türü tam olarak nedir? – wimh

+0

@Wimmel the meeting_start_date' bir dize olmalı, ancak başlangıçta – Tavo

+0

sql'de bir 'datetime' dır Bir dizeye ihtiyacınız varsa, bunu neden bir DateTime'a dönüştürüyorsunuz? Veritabanından gelen çıktı, jsonda ihtiyacınız olan formatla aynı görünür. – wimh

cevap

0

Bu hatayı düzeltmek için yapmanız gereken şey, DateTime öğenizi ayrıştırdıktan sonra, ToString() ile sonlandırın. Bu size mi