C#在数千行上转换时区。随机获得;提供的日期时间表示无效的时间。”;
我很困惑,只是一个简单的问题。我有一些代码循环ssis包中的数据行以转换时区,但它在一行上失败了,我不知道为什么 完整的错误消息是: 提供的DateTime表示无效时间。例如,当时钟向前调整时,跳过的周期中的任何时间都是无效的 我运行以执行转换时间的代码是:C#在数千行上转换时区。随机获得;提供的日期时间表示无效的时间。”;,c#,datetime,ssis-2012,C#,Datetime,Ssis 2012,我很困惑,只是一个简单的问题。我有一些代码循环ssis包中的数据行以转换时区,但它在一行上失败了,我不知道为什么 完整的错误消息是: 提供的DateTime表示无效时间。例如,当时钟向前调整时,跳过的周期中的任何时间都是无效的 我运行以执行转换时间的代码是: DateTime easternstandardtime = Row.UniversalTime; TimeZoneInfo timeZoneGMT = TimeZoneInfo.FindSystemTimeZoneByI
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;
代码在第二行到最后一行(转换时间)失败。Row.UniversalTime
的值为3/27/2016 1:10:03 AM
。这怎么不好?变量的完整统计信息如下所示。令我感到奇怪的是,文件的其余部分处理得很好,日期时间都很相似。不知道为什么它会随机地以这样的值爆炸。有什么想法吗
完整var统计:
?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
正如错误消息所暗示的,您试图在实际不存在的时间进行转换 欧洲大多数国家将在协调世界时01:00向前冲1小时
因此,如果大多数欧洲国家在01:00(格林尼治标准时间)前跳,并且您试图转换格林尼治标准时间01:10,那么根据DST调整,该时间实际上并不存在。看来这是你的问题。可能是重复的感谢这就是问题所在。我甚至没有想到欧洲的dst。谢谢