值xxx对yyy无效。错误的日期时间格式

时间:2014-02-27 11:28:43

标签: c# asp.net-mvc entity-framework date datetime

您好我从输入框中获取了我的dateTime,并使用此代码初始化了datepicker:

$(document).ready(function () {
    $("#CreationDate").datepicker({ autoclose: true, todayHighlight: true, language: "pl", format: 'dd/mm/yyyy' });
})

您可以看到格式为dd/mm/yyyy 这是我的模特:

public int Id { get; set; }
public int DeviceId { get; set; }
public string SerialNo { get; set; }
public System.DateTime CreationDate { get; set; }

当我尝试将我的模型输入到数据库控制器拒绝因为Model.isValid=false

如果我将格式更改为mm/dd/yyyy模型有效,但这不是选项,因为用户不希望以Us格式输入数据。 我放入了web.config全球化专栏:

<globalization culture="en-GB"/>

没有效果 我该如何修改我的代码? 或唯一简单的呼叫控制器动作?

3 个答案:

答案 0 :(得分:2)

问题:您的自定义日期格式dd/mm/yyyy无效。

mm用于表示Minutes而不是Month

解决方案:您应该使用大写MM来代表Month。 所以你的格式应该是dd/MM/yyyy

mm分钟,从0059 MM月份,从0112

试试这个:

$(document).ready(function () {
    $("#CreationDate").datepicker({ autoclose: true, 
    todayHighlight: true, language: "pl", format: 'dd/MM/yyyy' });
})

答案 1 :(得分:1)

答案 2 :(得分:1)

您的日期选择器格式应为dd/mm/yy而不是dd/mm/yyyy。在我的例子中,以下代码适用于greate:

$(function () {
    $(".datePicker").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'dd/mm/yy',
        yearRange: "2013:2014"
    });
});

请注意另一件事,您可以将CreationDate字段从System.DateTime更改为String。

然后,使用以下代码

 DateTime CreationDate ; 
 DateTime.TryParseExact(yourModel.CreationDate, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out CreationDate );

希望,这会有所帮助。