2017-02-08 75 views
0

我有一个<table>,我想在一个<td>,显示日期时间是这样的:04/2017 它的四月,2017年:显示日期时间 “年” 为17,而不是2017年(VB)

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

</td> 

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

Example Image

回答

4

你可以使用一个custom format string

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

从文档引用:通过12

  • \/月份,从01:

    • MM字面字符/
    • yy:当年,从00到99

    注意:如果CreditCardExpirationDate是不是一个DateTimeDateTime?,你将不得不使用?.ToString而不是.ToString

    由于MVC不允许调用方法DisplayFor,则需要annotate your model property代替:(我使用C#语法,因为在你的屏幕快照的链接将显示你的模型是用C#。)

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

    我有这个错误:[链接](https://s30.postimg.org/muvcorkch/Untitled.png) –

    +0

    [链接](https://s30.postimg.org/n3f0h8qtt/Untitled.png) –

    +0

    @BallonUra:我已经更新了我的答案。 – Heinzi

    0

    对不起,我不是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。

    +0

    它们在VB.NET中也是一样的。这是一个框架功能,不适用于任何语言 –

    相关问题