首页 > 解决方案 > 为什么字符串不能转换为日期时间?

问题描述

我有这个字符串:

 {2018-06-17 10:05:41}

在某些时候,我尝试将其转换为 DateTime:

  DateTime.ParseExact(cell.StringCellValue, "dd/MM/yyyy", CultureInfo.InvariantCulture);

但我得到了这个例外:

 "String was not recognized as a valid DateTime."

知道为什么上面的字符串不能识别为 DateTime 以及如何修复它吗?

标签: c#.netdatetime

解决方案


因为您使用了错误的格式 - 2018-06-17 10:05:41is yyyy-MM-dd HH:mm:ss(不确定该HH部分,它可能是hh,但缺少AM/PM提示)。

此外,您最好使用TryParseExactthen ParseExact

DateTime dateTime;
DateTime.TryParseExact(
    cell.StringCellValue, 
    "yyyy-MM-dd HH:mm:ss", 
    CultureInfo.InvariantCulture, 
    DateTimeStyles.None, 
    out dateTime);

因为如果解析失败,您将不必处理异常。


推荐阅读