我需要帮助这个简单而愚蠢的事情..
希望能够将此字符串表示"Oct 9 2017 2:45:67:145PM"
转换为日期
我正在使用以下代码:
string strDate = "Oct 9 2017 2:45:67:145PM";
DateTime dtTroubleDate;
dtTroubleDate = DateTime.ParseExact(strDate.ToString(), "MMM d yyyy h:mm:ss:ffftt", CultureInfo.InvariantCulture);
MessageBox.Show("dtTroubleDate String : " + dtTroubleDate.ToString());
这是SSIS包中的C#代码。我正在从文件中读取日期。 需要在数据库中存储为' datetime2'
答案 0 :(得分:1)
从未在公历的历史中有过67秒的时间......
这必须是文件本身的拼写错误。您使用的格式没问题,但出于这个原因,我建议您使用TryParseExact
代替ParseExact
。
当使用ParseExact
时,你基本上是在说“我知道日期时间值的字符串表示将始终采用这种特定格式,我将始终能够解析它。
然而,情况很少 - 因为大多数时候日期时间值的字符串表示是由易犯错误的人写的,偶尔会有拼写错误 - 而这正是TryParse
方法的全部内容。
string strDate = "Oct 9 2017 2:45:67:145PM";
DateTime dtTroubleDate;
if(DateTime.TryParseExact(
strDate,
"MMM d yyyy h:mm:ss:ffftt",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dtTroubleDate))
{
// Datetime is valid
}