2011-07-08 19 views
10

Başka bir ParseExact sorunu. Ben biçimi ile bir tarih için bir UTC biçimlendirilmiş dize ayrıştırmak çalışıyorum:Neden DateTime.ParseExact, takip eden Z ile UTC biçimini ayrıştırmıyor?

Ben nedense tam bunu ayrıştırmak olamaz sondaki Z. ile, UTC biçiminde olduğu

"YYYY-MM-DDThh:mm:ss.ssZ"

. "U", "s", "o" özel biçimli dizeleri, yanı sıra birkaç DateTimeStyles ve el yazısı olarak denedim. Kültür değişmezdir.

Bazı nedenlerden dolayı, UTC dizesini işaret eden Z'den hoşlanmaz. Çıkardığımda ayrıştırır. Memnuniyetle, mutlu bir şekilde, ben UTC datetime dizeleri olduklarını bildiğimden takip eden Z'den kurtulurum, ama yapamam. Herhangi bir fikir?

cevap

18

Belirtilen biçim dizeleri standard format strings. Muhtemelen böyle bir custom format string, kullanmalısınız: Sonunda ToUniversalTime() koymazsanız, sonuç, yerel saat dilimine

DateTime.ParseExact("2011-03-02T20:15:19.64Z", "yyyy-MM-ddTHH:mm:ss.ffK", null).ToUniversalTime() 

dönüştürülecektir.

+0

Z'nin UTC biçiminde olduğu anlamına gelmediğini düşündüm? –

+1

@scope, evet, öyle. Ama 'ParseExact()' ın sonucu '' DateTimeKind.Local' ile benim için (UTC + 1) '' 2.3.2011 21: 15: 19'. UTC saatini almak için ToUniversalTime() 'i çağırmalısınız. – svick

+0

Bu işe yarıyor. Teşekkürler @Svick. –

İlgili konular