Datetime.ParseExact 在服务器上抛出错误,但在客户端上工作

本文关键字:客户端 工作 错误 ParseExact 服务器 Datetime 出错 | 更新日期: 2023-09-27 18:36:55

使用以下代码收到错误"字符串未被识别为有效的日期时间"。

NewRow["ExpiryDate"] = DateTime.ParseExact(SelectedRow.Cells[9].Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); 

其中 selectedRow 是数据库的行。代码编写在 RowCommand 事件中。SelectedRow.Cells[9]中的值。文本在客户端采用 dd-MM-yyyy 格式,而在服务器端则不同。

如何编写适用于所有日期时间格式的通用代码?

Datetime.ParseExact 在服务器上抛出错误,但在客户端上工作

您必须指定 dd-MM-yyyy 数据的日期格式。

使用以下方法:

DateTime.ParseExact Method (String, String[], IFormatProvider, DateTimeStyles)

样本:

 string[] formats = { "dd-MMM-yyyy", "dd/MMM/yyyy", "dd-MM-yy","d/M/yy"};
 string dateString = "1/1/10";
 DateTime date=DateTime.ParseExact(dateString ,formats,
    System.Globalization.CultureInfo.InvariantCulture,
     System.Globalization.DateTimeStyles.None);

您正在接收dd-MM-yyyy格式,但是在parseExact 中,您已经给出了dd/MM/yyyy。将"/"替换为"-"

AVD

试试这个....或类似

NewRow["ExpiryDate"] = DateTime.ParseExact(SelectedRow.Cells[9].Text, "dd/MM/yyyy".Replace("/", "-"), System.Globalization.CultureInfo.InvariantCulture);