C# 如何控制输入字段中的时间格式?

C# 如何控制输入字段中的时间格式?,c#,datetime,asp.net-core-mvc,C#,Datetime,Asp.net Core Mvc,我的模型有一个日期时间字段: public DateTime ProjectStart { get; set; } 如果我希望时间以24小时格式显示,在视图中显示为纯文本,我可以这样做(大写HH): 但是如何控制输入字段中的时间格式呢 <input asp-for="ProjectStart" class="form-control" /> 在输入标记中添加标记帮助器属性asp格式: <!-- I tried several variations of this: --&g

我的模型有一个日期时间字段:

public DateTime ProjectStart { get; set; }
如果我希望时间以24小时格式显示,在视图中显示为纯文本,我可以这样做(大写HH):

但是如何控制输入字段中的时间格式呢

<input asp-for="ProjectStart" class="form-control" />
在输入标记中添加标记帮助器属性
asp格式

<!-- I tried several variations of this: -->
<input asp-for="ProjectStart" asp-format="{0:dd/MM/yyyy HH:mm}" class="form-control" />
<input asp-for="ProjectStart" asp-format="{0:dd.MM.yyyy HH:mm}" class="form-control" />
<input asp-for="ProjectStart" asp-format="{0:dd-MM-yyyy HH:mm}" class="form-control" />

正如您所看到的,格式是正确的,数据就在那里。但在我的浏览器中,日期选择器显示“mm/dd/yyyy-->:-->”。

Use
asp format
tag helper属性,例如:

asp格式=“{0:yyyy-MM-ddTHH:MM}”



格式字符串必须符合中指定的ISO-8601日期格式的子集。

应用
[DataType(DataType.date)]
属性时,Razor将以“date”类型呈现输入。这是一个HTML5输入类型,它将作为浏览器控件呈现(默认情况下获得的日历)。但是,浏览器控件强制将日期显示为本地化(即美国的
MM/dd/yyyy
)。也就是说,浏览器中显示的格式取决于本地日期格式

因此,如果要显示格式
dd/MM/yyyy
,则需要更改本地系统日期格式。您可以参考以下链接了解如何更改本地日期格式


参考:

将输入字段的内容从“10/09/2019 09:45 PM”更改为“mm/dd/yyyy-->:-->”。所需内容为完整的
DateTime
,日期和时间,但没有秒或毫秒,为24小时时间格式。类似这样:“2019年9月10日22:05”
asp format=“{0:dd/MM/yyyy HH:MM}”
显示的
2019年10月9日14:12
不适合我。是否有其他东西干扰了格式设置?铬?我的电脑的系统设置?我在viewmodel中没有任何格式装饰。很可能是区域性设置。实际上,这只是找到与您的文化相适应的
formatstring
的问题。用正确的字符串替换
dd/MM/yyyy HH:MM
。是否可以从输入标记发布呈现的HTML?使用
asp格式
属性。@请参阅更新2。fomat在HTML中是正确的,但Chrome中的日期选择器显示“mm/dd/yyyy-->”。
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy HH:mm}")]
<!-- I tried several variations of this: -->
<input asp-for="ProjectStart" asp-format="{0:dd/MM/yyyy HH:mm}" class="form-control" />
<input asp-for="ProjectStart" asp-format="{0:dd.MM.yyyy HH:mm}" class="form-control" />
<input asp-for="ProjectStart" asp-format="{0:dd-MM-yyyy HH:mm}" class="form-control" />
<input class="form-control" 
       type="datetime-local" 
       data-val="true" 
       data-val-required="The Starttidspunkt field is required." 
       id="ProjectStart" 
       name="ProjectStart"
       value="12.10.2019 07:12" />
<input asp-for="ProjectStart" class="form-control" asp-format="{0:yyyy-MM-ddTHH:mm}" />