【问题标题】:String was not recognized as a valid DateTime FormatException字符串未被识别为有效的 DateTime FormatException
【发布时间】:2021-05-04 16:08:27
【问题描述】:

我收到错误消息的异常 -

“System.FormatException:字符串未被识别为有效 日期时间。”

在下面一行:

DateTime RecDate = RecDateSearch == string.Empty ? Convert.ToDateTime("1/1/1970").Date : Convert.ToDateTime(RecDateSearch).Date;

当在少于12个像10/1/2021或12/12/2020的日期选择日期时,我没有例外。但是,当在日期中选择超过 12 天时,例如 20/1/2020 或 23/12/2020,我得到了这个例外。

这是我的 javascript 代码 -

    var myTable = $('#m_table_1').DataTable({
        "processing": true,
        "serverSide": true,
        "dom": '<"top"i>rt<"bottom"lp><"clear">',
        "scrollY": 200,
        "scrollX": true,
        "ajax": {
            "url": '@Url.Action("AllPOSDonations", "POSDonation")',
            "type": "POST"
        },
        columns: [
        { data: "Id" },
        { data: "No" },
        {
            data: "DonationDate", render: function (d) {
                return moment(d).format('YYYY/MM/DD');
        }

这是我的剃须刀代码 -

 <div class="form-group" id="datepickerDiv">
<input type="text" id="recDate" class="form-control" data-date-container='#datepickerDiv' />
</div>

【问题讨论】:

  • 你设置了什么语言/地区,它使用“mm/dd/yyyy”吗?
  • Convert.ToDateTime("1/1/1970").Date 不要那样做。调用DateTime 构造函数并传入数字。没有充分的理由使用具有固定日期的Convert

标签: javascript c# asp.net asp.net-mvc asp.net-core


【解决方案1】:

将日期和时间的指定字符串表示形式转换为其等效的 DateTime。字符串表示的格式必须与指定的格式完全匹配,否则会抛出异常

使用DateTime.ParseExact

DateTime date = DateTime.ParseExact(RecDateSearch, "dd/MM/yyyy", null);

【讨论】:

  • 当使用这一行时,我收到了这个错误的 DataTables 警告:table id=m_table_1 - Ajax 错误。有关此错误的更多信息,请参阅datatables.net/tn/7
  • 加载资源失败:服务器响应状态为 500(内部服务器错误)
【解决方案2】:

当您为日期值提供格式良好的字符串时,请使用更宽容的Parse 方法,您可以简化为:

DateTime RecDate = RecDateSearch == string.Empty ? new DateTime(1970, 1, 1) : DateTime.Parse(RecDateSearch);

Console.WriteLine(RecDate.ToString("yyyy/MM/dd"));

结果:

string RecDateSearch = string.Empty;
// RecDate -> 1970-01-01

string RecDateSearch = "2020/01/20";
// RecDate -> 2020-01-20

【讨论】:

  • 当按日期搜索时,出现此消息(表中无数据)
  • 再次检查您的日期值和记录值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
相关资源
最近更新 更多