2016-03-28 18 views
3

Şaşkın olduğum için hızlı bir soru. Zaman dilimlerini dönüştürmek için bir ssis paketindeki veri zarfları arasında dolaşan bazı kodlar var ve bir satırda başarısız oluyor ve neden hiçbir fikrim yok.C# binlerce satırda bir dönüşüm zaman dilimi yapıyor. Rastgele "Sağlanan DateTime geçersiz bir süreyi temsil ediyor."

tam hata iletisi:

sağlanan DateTime geçersiz süreyi temsil eder. Örneğin, saat ileriye ayarlandığında, atlanan dönemde herhangi bir zaman geçersizdir. Ben dönüştürme zamanı yapmak koşmak

kodudur:

DateTime easternstandardtime = Row.UniversalTime; 

    TimeZoneInfo timeZoneGMT = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time"); 
    TimeZoneInfo timeZoneEST = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); 

    easternstandardtime = TimeZoneInfo.ConvertTime(Row.UniversalTime, timeZoneGMT, timeZoneEST); 

    Row.StandardEasternTime = easternstandardtime; 

kod son satırı (dönüştürmek saat) 2. ve üzerinde başarısız olur. Row.UniversalTime değeri 3/27/2016 1:10:03 AM'dur. Bu nasıl değil mi? Değişkenin tam istatistikleri aşağıdadır. Bana garip olan şey, dosyanın geri kalanının iyi işlenmiş olması ve tarihlerin hepsinin birbirine benzemesi. Bunun neden böyle bir değerle rastgele üflendiğinden emin değilsiniz. Herhangi bir fikir?

Tam var istatistikleri: biraz ima hata mesajı olarak

?Row.UniversalTime 
{3/27/2016 1:10:03 AM} 
Date: {3/27/2016 12:00:00 AM} 
Day: 27 
DayOfWeek: Sunday 
DayOfYear: 87 
Hour: 1 
Kind: Unspecified 
Millisecond: 0 
Minute: 10 
Month: 3 
Second: 3 
Ticks: 635946378030000000 
TimeOfDay: {01:10:03} 
Year: 2016 
+0

olası çift [durum arama zaman TimeZoneInfo.ConvertTimeToUtc belirli DateTime değerleri] (http://stackoverflow.com/questions/2416439/exception-calling-when-timezoneinfo-converttimetoutc-for-certain-datetime-values) –

cevap

2

, aslında var olmayan bir süre bir dönüşüm yapmak çalışıyorsunuz.

http://www.timeanddate.com/news/time/europe-starts-dst-2016.html

Avrupa'da

Çoğu ülke 01:00 UTC Yani

, çoğu Avrupa ülkeleri 01:00 (GMT) ileri bahar eğer ileri 1 saat bahar ve edecektir

sen' GMT saatini 01: 10'da dönüştürmeye çalışıyoruz, bu zaman aslında DST ayarına göre mevcut değil. Bu senin sorunun. arasında

+0

Teşekkürler, konu buydu. Avrupa'nın dstünü bile düşünmedim. Teşekkürler. – user3494110

İlgili konular