J'ai un problème concernant la conversion de la date/heure à ce jour à l'aide d'un modèle.
Modèle de la bibliothèque de classes
public partial class LoanContract
{
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime LoanDateStart { get; set; }
}
Modèle du projet
public class ModelLoan
{
public LoanContract loanContract { get; set; }
}
Code dans le contrôleur
myList.loanContract = new LoanContract { LoanDateStart = DateTime.Today };
Voir:
<input disabled type="date" asp-for="loanContract.LoanDateStart" id="dpDateNow" class="form-control" />
Il montre comme ceci: yyyy-MM-dd
Ce que je veux réaliser, c'est que je veux le changer en MM/dd/yyyy
. J'ai essayé d'utiliser .ToString("MM/dd/yyyy")
mais cela ne fonctionne pas.
Je pense que c'est un bogue pour les caractères d'échappement dateformat sur le noyau dotnet. Aucune des solutions ci-dessus n'a fonctionné pour moi. Seule cette méthode a résolu mon problème. pourquoi DateTime.ToString ("jj/MM/aaaa") me donne jj-MM-aaaa?
[DisplayFormat(DataFormatString = "{0:dd'/'MM'/'yyyy}", ApplyFormatInEditMode = true)]
ou
<input asp-for="DateProperty" asp-format="{0:dd'/'MM'/'yyyy}">
Pour ceux qui arrivent ici qui souhaitent changer le format de date d'un modèle dans la vue indépendamment de la classe de modèle (c'est ce à quoi je m'attendais à répondre). Cela fonctionne à la fois dans Razorpages et MVC.
Ajoutez simplement .ToString ("dd/MM/YYYY") à la propriété que vous affichez.
par exemple.
@Model.DateOfBirth.ToString("<Use formatting here>")
C'est très bien si vous ne souhaitez afficher qu'une partie d'une date, par exemple le mois et l'année, mais ailleurs, vous devez afficher le jour et l'heure.
Simple et pratique, utilisez asp-format
, exemple:
<input asp-for="MyDate" asp-format="{0:dd/MM/yyyy}" class="form-control" />
Ou:
@Html.TextBoxFor(model => model.MyDate, "{0:dd/MM/yyyy}", new { @class = "form-control" })