我在MVC5 asp上使用dd/MMM/YYYY格式的日期时遇到问题。net项目。主要是在Chrome上,因为它似乎只接受yyyy/mm/dd格式的日期。
为了规范跨浏览器的行为,我使用了jQuery datetimepicker组件。
我尝试了很多方法,但Chrome仍然表示日期无效。即使在将输入定义为文本而不是日期之后。
此外,即使我关闭了特定组件的验证(data val=“false”),Chrome仍然坚持将日期标记为无效。
型号:
public class order
{
[Key]
public int orderID { get; set; }
[Required]
public string comments { get; set; }
[Required]
[DisplayFormat(DataFormatString = "{0:dd/MMM/yyyy}", ApplyFormatInEditMode = false)]
[Display(Name = "Date of Shipping")]
public DateTime date { get; set; }
}
查看日期输入:
<div class="form-group">
@Html.LabelFor(model => model.date, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.date, new { htmlAttributes = new { @class = "form-control datetimepicker" } })
@Html.ValidationMessageFor(model => model.date, "", new { @class = "text-danger" })
</div>
</div>
导入:
<script src="https://code.jquery.com/jquery-3.2.1.js"/script>
<link rel="stylesheet" type="text/css" href="~/Content/jquery.datetimepicker.min.css" />
<script src="~/Scripts/jquery.datetimepicker.full.min.js"></script>
Javascript:
<script type="text/javascript">
jQuery.datetimepicker.setLocale('es');
jQuery('#date').datetimepicker({
format: 'd/M/Y',
});
</script>
我终于解决了这个问题:
-首先,您需要添加时刻。js添加到您的项目中,可以使用NutGet manager添加,然后在页面上引用:
@Scripts.Render("~/Scripts/moment-with-locales.min.js")
非常重要的是,如果使用非英语格式的日期,您需要导入带有区域设置的时刻,即使更改了区域设置,它也会保持为“en”
-然后添加以下java脚本代码:
$.datetimepicker.setDateFormatter({
parseDate: function (date, format) {
var d = moment(date, format);
return d.isValid() ? d.toDate() : false;
},
formatDate: function (date, format) {
return moment(date).format(format);
}
});
$.validator.methods.date = function (value, element) {
return this.optional(element) || moment(value, "DD/MMM/YYYY", 'es').isValid();
}
-还要注意,datetimepicker初始化更改如下:
jQuery('#date').datetimepicker({
format: 'DD/MMM/YYYY HH:mm',
formatTime: 'HH:mm',
formatDate: 'DD/MMM/YYYY'
});
问题内容: 我想将日期格式从“ MMM dd,yyyy HH:mm:ss a”更改为“ MM.dd”。我有以下代码 但是我在 请帮忙 问题答案: 三种可能的解释: 您的默认语言环境与输入日期不兼容-例如,它不能理解为月份名称 输入字符串有问题,或者 是错误的类型(例如而不是,或完全是其他类型),或者未声明。 您应该在问题中包括异常的详细信息以弄清是什么,但这是一个工作示例,基本上使用您自己的代码,
问题内容: 我在日期解析示例日期上遇到了问题: 有例外 确实我想将此格式日期解析为yyyy-MM-dd我尝试: 采取:java.text.ParseException:无法解析的日期:“ 2013年10月16日星期三00:00:00 CEST” 好的,我更改为并工作: 问题答案: 我将假设对您来说是pl-PL因为您似乎在波兰。 因此,日期字符串中的英语单词会导致无法解析的日期。 一个合适的波兰日期
在一个数据集中,我有一些日期时间,格式为EEE MMM dd hh:mm:ss zzz yyyyy,比如“mon 5月18日20:25:32 GMT+02:00202”。我如何在Python中以ISO格式和机器本地时间转换这个字符串?
问题内容: 我正在尝试解析格式的日期。 它引发以下异常 它可以解析格式,但是格式失败。我也很累设定,但是在那种情况下也失败了。 问题答案: 原因是解析默认情况下区分大小写,并且格式化程序无法识别。它只会识别。 您可以使用并调用来构造不区分大小写的解析器: 将格式样式的其余部分的解析样式更改为不区分大小写。 解析可以区分大小写或不区分大小写-默认情况下区分大小写。此方法允许更改区分大小写的解析设置。
问题内容: 当我在下面的代码下运行时,出现Unparseable错误。如何将dd MMM yyyy格式转换为dd / MM / yyyy格式? 问题答案: 假设您修复了明显的语法错误,则: 您要做的就是为您需要解析的格式创建一个解析器,并为您想要的格式创建一个格式化器:
我试图使用Java8重新格式化今天的日期,但我得到了以下错误: java.time.format.DateTimeParseException:无法解析文本'09-Oct-2017':无法从TemporalAccessor获取LocalDate:{WeekBasedYear[WeekFields[SUNDAY,1]]=2017,MonthOfYear=10,DayOfYear=9},类型为java