Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将bootstrap3日期时间选择器转换为C#DateTime_C#_.net_Datetime_Twitter Bootstrap 3 - Fatal编程技术网

将bootstrap3日期时间选择器转换为C#DateTime

将bootstrap3日期时间选择器转换为C#DateTime,c#,.net,datetime,twitter-bootstrap-3,C#,.net,Datetime,Twitter Bootstrap 3,我使用带以下选项的引导日期时间选择器v3 $(".form_datetime").datetimepicker({ autoclose: true, isRTL: Metronic.isRTL(), format: "dd MMyyyy hh:ii", pickerPosition: (Metronic.isRTL() ? "bottom-right" : "bottom-left")

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

 $(".form_datetime").datetimepicker({
            autoclose: true,
            isRTL: Metronic.isRTL(),
            format: "dd MMyyyy hh:ii",
            pickerPosition: (Metronic.isRTL() ? "bottom-right" : "bottom-left")
        });
当我得到picker的结果时,我得到类似于
“2016年3月10日-10:50”
的结果,我无法将其转换为C#datetime,C#返回以下错误

inputStartDate = Convert.ToDateTime(txtDatetime.Text);    
字符串未被识别为有效的日期时间


Convert.ToDateTime
默认情况下使用当前区域性设置的标准日期和时间格式。看起来这种格式不是其中之一

在您的情况下,您需要使用自定义格式作为
dd MMMM yyyy-HH:mm
,基于英语的区域性,如
InvariantCulture
DateTime.ParseExact
方法

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

转换。默认情况下,ToDateTime使用当前区域性设置的标准日期和时间格式。看起来这种格式不是其中之一

在您的情况下,您需要使用自定义格式作为
dd MMMM yyyy-HH:mm
,基于英语的区域性,如
InvariantCulture
DateTime.ParseExact
方法

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

尝试另一种日期时间格式:

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

尝试以下另一种日期时间格式:

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

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);

我喜欢使用解析的“Try”变体来避免异常。如果失败,您将获得默认值(如果是
DateTime
,则为
MinValue
),不会造成任何伤害。您还将返回一个
bool
值,指示成功或失败。不过,这个示例可以使用。

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);
我喜欢使用解析的“Try”变体来避免异常。如果失败,您将获得默认值(如果是
DateTime
,则为
MinValue
),不会造成任何伤害。您还将返回一个
bool
值,指示成功或失败。不过,这个例子是有效的