我使用bootstrap Datetime选择器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#datetime,c#返回我跟随错误
inputStartDate = Convert.ToDateTime(txtDatetime.Text);
字符串未被识别为有效的DateTime。
答案 0 :(得分:1)
Convert.ToDateTime
默认使用当前文化设置的标准日期和时间格式。看起来这种格式不是其中之一。
在您的情况下,您需要将自定义格式用作dd MMMM yyyy - HH:mm
,基于英语的文化,例如InvariantCulture
和DateTime.ParseExact
方法一样;
var inputStartDate = DateTime.ParseExact(txtDatetime.Text,
"dd MMMM yyyy - HH:mm",
CultureInfo.InvariantCulture);
答案 1 :(得分: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);
我喜欢使用"尝试"解析的变体,以避免异常。如果失败,则会获得默认值(在MinValue
的情况下为DateTime
),不会造成任何损害。您还会获得bool
值,表示成功或失败。不过,这个例子很有用。
答案 2 :(得分:0)
试试这个,另一种日期时间格式:
$(".form_datetime").datetimepicker({
autoclose: true,
isRTL: Metronic.isRTL(),
format: "dd MM yyyy - hh:ii",
pickerPosition: (Metronic.isRTL() ? "bottom-right" : "bottom-left")
});