我在使用我正在构建的 SSIS 包中的脚本任务中的 DateTime.TryParseExact 方法验证 C# 中的日期时遇到问题。
我正在做的是使用 Split 方法去除包含日期的文件名的一部分,然后将文件名的日期部分传递给名为“FileDate”的本地字符串变量。然后我使用 DateTime.TryParseExact 验证该变量值,然后如果它很好,我将值传递给 SSIS 包级别变量。
例如,如果一个文件名为“filename_11-01-2013.txt”,我在“_”上拆分并在 FileDate 变量中保留“11-01-2013”。我正在工作的那部分已经验证了我的变量被正确填充。
我已确定我已声明“使用 System.Globalization;” 在我的脚本任务的顶部。
这是我的代码:
DateTime myDate;
if (DateTime.TryParseExact(FileDate, DateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out myDate) == true)
{
Dts.Variables["FileDate"].Value = FileDate;
Dts.TaskResult = (int)ScriptResults.Success;
}
else
{
Dts.TaskResult = (int)ScriptResults.Failure;
}
问题是它让糟糕的约会过去了。例如,它允许“55-01-2013”,这显然是一个糟糕的日期。
值得一提的是,以防万一这会影响潜在的答案,我可以控制文件最终将如何命名。任何帮助将不胜感激!