【问题标题】:Convert bootstrap3 DateTime picker to C# datetime [duplicate]将 bootstrap3 DateTime 选择器转换为 C# datetime [重复]
【发布时间】:2016-03-10 08:17:56
【问题描述】:

我使用带有以下选项的引导日期时间选择器 v3

 $(".form_datetime").datetimepicker({
            autoclose: true,
            isRTL: Metronic.isRTL(),
            format: "dd MMyyyy hh:ii",
            pickerPosition: (Metronic.isRTL() ? "bottom-right" : "bottom-left")
        });

当我得到选择器的结果时,我得到类似 "10 March 2016 - 10:50" 的信息,我无法将其转换为 C# 日期时间,c# 返回以下错误

inputStartDate = Convert.ToDateTime(txtDatetime.Text);    

字符串未被识别为有效的日期时间。

【问题讨论】:

    标签: c# .net datetime twitter-bootstrap-3


    【解决方案1】:

    DateTime.TryParseExact() 可以很好地使用自定义格式。这是一个例子:

    string input = "10 March 2016 - 10:50";
    DateTime dateTime;
    DateTime.TryParseExact(input, "dd MMMM yyyy - HH:mm", CultureInfo.InvariantCulture, 
        DateTimeStyles.None, out dateTime);
    

    我喜欢使用解析的“尝试”变体来避免异常。如果失败,您将获得默认值(在DateTime 的情况下为MinValue),不会造成任何伤害。您还会返回一个bool 值,指示成功或失败。不过,此示例有效。

    【讨论】:

      【解决方案2】:

      Convert.ToDateTime 默认使用您当前文化设置的标准日期和时间格式。看起来这种格式不是其中之一。

      在您的情况下,您需要使用自定义格式作为dd MMMM yyyy - HH:mm基于英语的 文化,如InvariantCultureDateTime.ParseExact 等方法;

      var inputStartDate = DateTime.ParseExact(txtDatetime.Text,
                                               "dd MMMM yyyy - HH:mm",
                                               CultureInfo.InvariantCulture);  
      

      【讨论】:

        【解决方案3】:

        试试这个,另一种日期时间格式:

        $(".form_datetime").datetimepicker({
                    autoclose: true,
                    isRTL: Metronic.isRTL(),
                    format: "dd MM yyyy - hh:ii",
                    pickerPosition: (Metronic.isRTL() ? "bottom-right" : "bottom-left")
                });
        

        【讨论】:

          猜你喜欢
          • 2019-06-24
          • 2020-05-22
          • 1970-01-01
          • 2010-11-04
          • 2023-03-14
          • 2015-12-19
          • 1970-01-01
          • 1970-01-01
          • 2017-02-07
          相关资源
          最近更新 更多