2017-02-08 5 views
0

ich eine <table> haben, und ich will in einem <td>, Datum Zeit wie dieser zeigen: 04/2017 Sein April 2017:Anzeige Datetime "Jahr" als 17 und nicht 2017 (VB)

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

</td> 

Aber das Jahr ist im 4-stelligen Format, ich brauche nur 2 Ziffern. Und ich muss Null vor dem Monat hinzufügen. also ist es 04 und nicht nur 4. Thx.

Example Image

Antwort

4

können Sie verwenden, um eine custom format string:

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

aus der Dokumentation Zitat:

  • MM: Der Monat, von 01 bis 12
  • \/: Die wörtliche Zeichen /.
  • yy: Das Jahr, von 00 bis 99.

Hinweis: Wenn CreditCardExpirationDate ein DateTime? anstelle eines DateTime ist, werden Sie ?.ToString statt .ToString verwenden.

Da MVC nicht zulässt, dass Methoden in DisplayFor nennen, müssen Sie annotate your model property statt: (Ich verwende C# Syntax, da der Link in Ihrem Screenshot zeigt, dass Ihr Modell in C# geschrieben.)

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

Ich habe diesen Fehler: [link] (https://s30.postimg.org/muvcorkch/Untitled.png) –

+0

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

+0

@BallonUra: Ich habe meine Antwort aktualisiert. – Heinzi

0

Sorry, ich bin kein VB Programmierer, aber in C# würde ich verwenden DateTime und die Date 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 

ich hoffe, dass Sie dies VB anpassen können.

+0

Sie sind die gleichen in VB.NET auch. Dies ist ein Framework-Feature, das für keine Sprache spezifisch ist –

Verwandte Themen