【问题标题】:Display DateTime "Year" as 17 and not 2017 (VB)将日期时间“年”显示为 17 而不是 2017 (VB)
【发布时间】:2017-02-09 00:02:09
【问题描述】:

我有一个<table>,我想在一个<td> 中显示日期时间,如下所示:04/2017 2017 年 4 月:

<td class="card-date">
   @Html.DisplayFor(Function(modelItem) item.CreditCardExpirationDate.Month) +"/"+ 
   @Html.DisplayFor(Function(modelItem) item.CreditCardExpirationDate.Year)                                           

</td>

但是年份是 4 位数字格式,我只需要 2 位数字。 我需要在本月之前添加零。所以它是 04 而不仅仅是 4。 谢谢。

Example Image

【问题讨论】:

    标签: asp.net-mvc vb.net


    【解决方案1】:

    您可以使用custom format string

    item.CreditCardExpirationDate.ToString("MM\/yy")
    

    引用自文档:

    • MM:月份,从 01 到 12。
    • \/:文字字符/
    • yy:年份,从 00 到 99。

    注意:如果CreditCardExpirationDateDateTime? 而不是DateTime,则必须使用?.ToString 而不是.ToString

    由于 MVC 不允许您调用 DisplayFor 中的方法,因此您需要改为 annotate your model property:(我使用 C# 语法,因为屏幕截图中的链接显示您的模型是用 C# 编写的。)

    [DisplayFormat(DataFormatString = @"{0:MM\/yy}")]
    public DateTime CreditCardExpirationDate { get; set; }
    

    【讨论】:

    • 我有那个错误:link
    【解决方案2】:

    抱歉,我不是 VB 程序员,但在 C# 中我会使用 DateTimeDate Format strings

    // assuming item.CreditCardExpirationDate is DateTime
    DateTime date = item.CreditCardExpirationDate;
    var month = date.ToString("MM"); // month, leading zero
    var year = date.ToString("yy"); // year, two digits
    

    我希望你能适应 VB。

    【讨论】:

    • 它们在 VB.NET 中也是一样的。这是一个框架功能,不特定于任何语言
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 2019-09-08
    • 2022-12-10
    • 2022-01-18
    相关资源
    最近更新 更多