从后端我收到一个格式为“yyyyMMddHHmmss”的字符串。当它显示在剑道网格中时,我需要它的格式为“MM / dd / yyyy HH:mm:ss”。
我正在使用MVC模型并尝试更改日期,因为我们从后端获取它们但是当我们运行更新时,更新的行格式错误。
我试过了:
address.substring(address.indexOf(" BLDG ") + 6, address.length());
没有格式化日期。
我也试过以下
的变体 columns.Bound(p => p.UploadDate).Format("{0:yyyyMMddHHmmss}");
和
columns.Bound(p => p.UploadDate).ClientTemplate("#=UploadDate ? kendo.toString(kendo.parseDate(UploadDate,yyyyMMddHHmmss), 'MM/dd/yyyy HH:mm:ss')#");
这两个都在页面上创建了“无效模板”错误。
答案 0 :(得分:2)
.Format()
功能仅在UploadDate
是您模型上的DateTime
对象时才有效:
columns.Bound(p => p.UploadDate).Format("{0:yyyyMMddHHmmss}");
您的第一个ClientTemplate示例失败,因为您使用的是内联简写if语句,但缺少false部分":" (请参阅下面的客户端模板解决方案。)
我相信您的第二个ClientTemplate示例失败,因为" yyyyMMddHHmmss"不是标准日期格式,因此kendo.dateParse()
函数失败。
如果无法将字段转换为模型中的DateTime,则必须使用ClientTemplate。试试这个:
columns.Bound(p => p.UploadDate)
.ClientTemplate("#= UploadDate
? kendo.toString(kendo.parseDate(UploadDate, 'yyyyMMddHHmmss'), 'MM/dd/yyyy HH:mm:ss')
: '' #");
参考文献: