【问题标题】:read yyyy-mm-dd format from XL file从 EXCEL 文件中读取 yyyy-mm-dd 格式
【发布时间】:2014-09-14 04:17:33
【问题描述】:

我为 XL“yyyy-mm-dd”添加了自定义单元格样式,当我读取数据表中的日期列时,我从 C# 应用程序中的 XL 文件中读取数据,我可以看到它的其他格式“mm /dd/yyyy" 但我想验证日期格式 ""yyyy-mm-dd"

try
{
    DateTime.ParseExact(dataRow["ServiceDate"].ToString(), "yyyy-mm-dd", CultureInfo.InvariantCulture); //"2014-11-22"
}

catch
{
    //
}

但这并不是每次都可以捕获语句

但我在 XL 文件“yyyy-mm-dd”中的日期格式正确,我该如何解决这个问题:(

【问题讨论】:

  • 调试器中的dataRow["ServiceDate"].ToString() 是什么?
  • dd/MM/yyyy 的顺序取决于您的“文化”设置。
  • 它显示这种格式 mm/dd/yyyy
  • 好吧,那么..你想用日期时间数据做什么? (请准确)
  • 这意味着,excel文件不能包含日期,而是日期的字符串表示形式......这意味着您必须将'放在Excel日期时间之前。如果操作正确,您会在单元格左上角看到一个黑色箭头

标签: c# asp.net-mvc date datetime


【解决方案1】:

这应该可行:

Convert.ToDateTime(dataRow["ServiceDate"]).ToString("yyyy-mm-dd");

【讨论】:

    【解决方案2】:

    使用DateTime.TryParse(string, out DateTime) 将抑制时间验证失败时出现异常。在if 语句中传递它,它将返回true,如果解析成功,则将结果分配给第二个参数。否则返回false。如果验证正常,请使用日期时间对象的ToString(format) 将其转换为您喜欢的格式。

    DateTime formattedTime;
    
    if (!DateTime.TryParse(dataRow["ServiceDate"], out formattedTime)) {
        // dataRow["ServiceDate"] is not a valid date may be throw an exception
    }
    
    formattedTime.ToString("yyyy-mm-dd"); // is your formatted time
    

    DateTime.TryParse Docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 2016-01-02
      • 1970-01-01
      • 2022-11-17
      相关资源
      最近更新 更多