我的web应用程序支持多种日期时间格式,即yyyy-MM-dd
,yyyy.MM.dd
,dd/MM/yyyy
和MM/dd/yyyy
。然而,当我使用其他两种格式时,两个第一个完美地工作,在最初的打印中用斜杠代替斜杠,这使得它们验证失败。但是,如果我选择一个日期,则会显示正确的(选择的)格式。日期时间格式不能使用斜线Kendo UI
我正在使用文化sv-SE。
我的web应用程序支持多种日期时间格式,即yyyy-MM-dd
,yyyy.MM.dd
,dd/MM/yyyy
和MM/dd/yyyy
。然而,当我使用其他两种格式时,两个第一个完美地工作,在最初的打印中用斜杠代替斜杠,这使得它们验证失败。但是,如果我选择一个日期,则会显示正确的(选择的)格式。日期时间格式不能使用斜线Kendo UI
我正在使用文化sv-SE。
我嫌疑人(没有Kendo UI的经验,但有其他日期/时间API的经验),“/”被视为“文化特定的日期分隔符”。如果你想“无论文化如何都是正确的斜线”,你可能需要逃避它。
如何执行转义取决于库,但通常你只需使用引号,例如
dd'/'MM'/'yyyy
MM'/'dd'/'yyyy
正如他的回答Jon notes这是关于/
是在.NET custom date formats一个特殊字符。
与Kendo一起工作时,这很令人困惑,因为它没有使用/
作为special character。
使用单独的格式字符串的客户端和服务器端应该是答案,但遗憾的是在Telerik UI for MVC(其中客户端上使用剑道)单一格式字符串用于客户端和服务器端与MVC佣工的剑道。
例如与日期格式 “DD-MM-YYYY”(在Windows区域设置集),以及一个视图模型的服务器上:
[Display(Name="Date")]
[UIHint("Date")]
[DisplayFormat(DataFormatString = Constants.DateFormat, ApplyFormatInEditMode = true)]
public DateTime Date { get; set; }
(Constants.DateFormat
是 “DD/MM/YYYY” )然后将具有一个编辑器模板(“Date.cshtml”):
@(Html.Kendo().DatePickerFor(m => m)
导致初始日期显示“29-05-2015”和JavaScript错误,因为它不能被解析。
其工作中使用
@(Html.Kendo().DatePickerFor(m => m)
.ParseFormats(new[] { "dd-MM-yyyy", Constants.DateFormat}))
的格式生成的HTML周围是错误的,但JavaScript就至少能够理解它。 (当然,这应该利用DateTimeFormatInfo.DateSeparator
动态地构建替代格式。)