如何获取日期时间输入以仅使用小时、分钟和秒,而没有微秒

How to get datetime input to use only hours, minutes, and seconds no microseconds

提问人:James Campbell 提问时间:10/26/2023 最后编辑:James Campbell 更新时间:10/28/2023 访问量:55

问:

我正在处理一个具有日期时间输入的 Razor 视图。我想获取他们输入的值并转换它。但是,在UI中,它一直以微秒显示,并在我提交时给我验证错误。 DateTime 属性

    [DataType(DataType.Time)]
public DateTime Time { get; internal set; }

剃刀 HTML

<div class="form-group">
<input asp-for="@Model.Time">

我尝试将其格式化为字符串并指定输入,但它一直以微秒为单位显示......

enter image description here

asp.net .NET Razor

评论

0赞 Pop 10/26/2023
错误消息是什么?
0赞 Pop 10/26/2023
如何在没有微秒的情况下将其格式化为字符串?
0赞 Zaheer Ansari 10/26/2023
您可以参考此链接以根据需要显示日期时间:learn.microsoft.com/en-us/dotnet/standard/base-types/...
0赞 James Campbell 10/27/2023
@Pop我附加了错误消息。这就是将格式字符串与此 HH:mm:ss 一起使用的方式
0赞 James Campbell 10/27/2023
@ZaheerAnsari格式化为字符串是正确的,但没有告诉我如何在输入框UI中格式化它

答:

0赞 Ali Hamed 10/27/2023 #1

您可以使用:

@Html.EditorFor(model => model.Time)

这将以所需的格式(小时、分钟和秒)呈现输入字段,并防止显示微秒。DateTime

为了解决您的问题,您还可以尝试以下操作:

@Html.TextBoxFor(model => model.Time, "{0:HH:mm:ss}", new { @class = "form-control" })

在模型类中:

public class YourModel
{
    [DataType(DataType.Time)]
    [DisplayFormat(DataFormatString = "{0:HH:mm:ss}", ApplyFormatInEditMode = true)]
    public DateTime Time { get; set;}
}

评论

0赞 James Campbell 10/27/2023
这非常接近,它比我所拥有的要好得多,但有两件事。1.时间输入显示秒,但不允许我输入。2. HH 应该格式化为小时的 24 小时表示,但它给了我正常的 12 小时,带有 AM PM 选项
0赞 Rojhat 10/28/2023
James,你需要改变你的约会时间的文化,你可能在你的时间里使用美国文化。stackoverflow.com/questions/35126433/......我相信这可能会对你有所帮助
0赞 Ali Hamed 10/28/2023
@JamesCampbell更新我的答案
0赞 James Campbell 11/2/2023
这只是为我提供了一个文本框,现在不再是日期输入。