YYYY##MM##DD HH**M**SS
gibi garip bir biçimde bir datetime dizesi varsa, nasıl yeni bir datetime nesne tabanı oluşturabilirim? datetimeformatinfoclass hakkında birşeyler okudum ama nasıl çalıştığını bilmiyorum ..4 # tuhaf biçiminden C# DateTime ayrıştırma biçimi
cevap
Sen emin değiliz veri için DateTime.ParseExact veya DateTime.TryParseExact kullanabilirsiniz Örneğin:
using System;
class Test
{
static void Main()
{
string formatString = "yyyy'##'MM'##'dd' 'HH'*'mm'*'ss";
string sampleData = "2010##02##10 07*22*15";
Console.WriteLine(DateTime.ParseExact(sampleData,
formatString,
null));
}
}
biçim dizesinde tırnak mutlaka bulunması - bu işe yarar. çok: - böylece "#" değişirse için "/"
string formatString = "yyyy##MM##dd HH*mm*ss";
Ancak tırnak kullanarak tırnak arasındaki karakterler anlamıyla kullanılır ve desen karakter olarak anlaşılamamıştır edilecek olduklarını açık olmak demektir alıntılar kullanan sürüm kesinlikle "/" yi kullanır. rsion, kültüre özgü bir değer kullanmaz. ParseExact
için
çağrısında null
"Mevcut kültürünü kullanmak" anlamına - çok fark yaratmak için düşüktür, bu durumda ancak yaygın kullanışlı bir alternatif CultureInfo.InvariantCulture
olduğunu.
Biçim dizisini ayrıştırmak ve bilgileri korumak için BCL'yi almanın bir yolu olmadığı talihsiz bir durumdur; Benim kendi Noda Time projem bu durumu düzeltir ve ben çok daha hızlı ayrıştırma ve biçimlendirme yapacak umuyoruz - ama şu anda üretim hazır olmaktan çok uzak.
DateTime.ParseExact yöntemini kullanabilir ve ihtiyacınız olan formatı geçebilirsiniz.
Bu, "string" öğesini "DateTime" olarak ayrıştırmanın en etkili yoludur. biçim bilgisi olmadan '.Parse()' ve '.TryParse() ile ayrıştırma f..king kahrolası yavaş! Kendi biçimlendirme biçiminizi sağlıyorsanız, ilgili ayrıştırma için –
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx – Tanzelax