我正在使用剑道时间选择器在 UI 上显示时间。小部件以以下格式提交时间
2016 年 5 月 16 日星期一 01:00:00 GMT-0500(中部夏令时)
我关注了文章here将日期时间转换为 .Net 日期时间对象 但是我在解析时遇到错误
{"String was not recognized as a valid DateTime."}
解析日期后,我想将其转换为 UTC 并将时间部分存储到数据库中。
[HttpPost]
public ActionResult Save(MyModel model)
{
// getting error at line below while parsing
DateTime dt = DateTime.ParseExact(model.SelectedTimeString.Substring(0,33),
"ddd MMM d yyyy HH:mm:ss GMT-zzzz",
CultureInfo.InvariantCulture);
var utcTime = dt.ToUniversalTime().TimeOfDay;
// store utcTime in database here
return View("Index", model);
}
cshtml
@using (@Html.BeginForm("Save", "Home"))
{
<div class="row">
<div class="col-lg-6">
@(Html.Kendo().TimePickerFor(x => x.SelectTime).Events(e => e.Change("changeDate")))
@Html.HiddenFor(x=>x.SelectedTimeString)
</div>
</div>
<button type="submit">Save</button>
}
javascript
<script type="text/javascript">
function changeDate() {
var kendoDate = $('#SelectTime').getKendoTimePicker();
$('#SelectedTimeString').val(kendoDate.value());
}
</script>
最佳答案
如果日期选择器为空或值无效,以下将返回日期对象或 null:
var data = $('#SelectTime').data('kendoDatePicker').value();
您可以通过将其分配给变量并执行 data.getFullYear() 来对其进行测试。之后,您可以使用:
var dataAsJsonString = JSON.stringify(data);
这将返回一个 UTC 日期,它是一个字符串,如下所示: “2011-10-10T05:00.000Z”
这是一个 fiddle 示例:http://jsfiddle.net/MadCodeMonkey/191a7c53/
关于javascript - 将 javascript datetime 转换为 C# 时出现解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37264215/