Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#在数千行上转换时区。随机获得;提供的日期时间表示无效的时间。”;_C#_Datetime_Ssis 2012 - Fatal编程技术网

C#在数千行上转换时区。随机获得;提供的日期时间表示无效的时间。”;

C#在数千行上转换时区。随机获得;提供的日期时间表示无效的时间。”;,c#,datetime,ssis-2012,C#,Datetime,Ssis 2012,我很困惑,只是一个简单的问题。我有一些代码循环ssis包中的数据行以转换时区,但它在一行上失败了,我不知道为什么 完整的错误消息是: 提供的DateTime表示无效时间。例如,当时钟向前调整时,跳过的周期中的任何时间都是无效的 我运行以执行转换时间的代码是: DateTime easternstandardtime = Row.UniversalTime; TimeZoneInfo timeZoneGMT = TimeZoneInfo.FindSystemTimeZoneByI

我很困惑,只是一个简单的问题。我有一些代码循环ssis包中的数据行以转换时区,但它在一行上失败了,我不知道为什么

完整的错误消息是:

提供的DateTime表示无效时间。例如,当时钟向前调整时,跳过的周期中的任何时间都是无效的

我运行以执行转换时间的代码是:

    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。谢谢