我有一个 ASP.NET Core 6.0 MVC 项目。我从 sql 获取日期数据并将其显示在 html 页面中。问题是,我的日期输入从未填满。 HTML 部分是:
<input type="datetime-local" value="@Model.Date" class="inputwidth">
我的模型日期格式是 day.month.year 00:00:00
我使用了几种格式,但都不起作用。我应该使用什么格式以及如何转换它?
应该没关系,但这是ISO8601。如果
Model.Date
是 DateTime
绑定就可以工作。
System.DateTime
没有格式,它是一个二进制值。事实上,该值在内部存储为 long
刻度计数。所有数据库(SQLite 除外)中的日期类型也没有格式,它们也是二进制值。
无论显示什么文本,输入的值将始终采用 ISO8601 形式。来自 Mozilla 的文档
input type='datetime-local'
需要注意的是,显示的日期和时间格式与实际值不同;显示的日期和时间根据操作系统报告的用户区域设置进行格式化,而日期/时间值始终采用
格式。例如,当上面的值提交到服务器时,它会看起来像YYYY-MM-DDThh:mm
。partydate=2017-06-01T08:30
假设
Date
属性是 DateTime
,ASP.NET Core 会将其值绑定到 input
元素的 Value
属性并自动返回。
名称
datetime-local
用于提醒开发人员,input
元素代表最终用户的时间,而不是服务器的时间或 UTC。没有 datetime
或 datetime-UTC
类型。