2

我正在使用剑道时间选择器在 UI 上显示时间。小部件以以下格式提交时间 Mon May 16 2016 01:00:00 GMT-0500 (Central Daylight Time)

我按照这里的文章将日期时间转换为 .Net 日期时间对象但是我在解析时遇到错误

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

解析日期后,我想将其转换为 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>
4

1 回答 1

0

如果日期选择器为空或值无效,则以下将返回日期对象或 null:

var data = $('#SelectTime').data('kendoDatePicker').value();

您可以通过将其分配给变量并执行 data.getFullYear() 来对其进行测试。之后,您可以使用:

var dataAsJsonString = JSON.stringify(data);

这将返回一个 UTC 日期,该日期为如下所示的字符串:“2011-10-10T05:00.000Z”

这是一个示例小提琴:http: //jsfiddle.net/MadCodeMonkey/191a7c53/

于 2016-08-09T14:59:55.007 回答