Je dois convertir la chaîne au format mm / jj / aaaa en variable datetime, mais elle doit restr au format mm / jj / aaaa.
ssortingng strDate = DateTime.Now.ToSsortingng("MM/dd/yyyy");
S’il vous plaît aider.
Vous recherchez la méthode DateTime.Parse()
( Article MSDN )
Alors tu peux faire:
var dateTime = DateTime.Parse("01/01/2001");
Ce qui vous donnera un object typé DateTime
.
Si vous devez spécifier le format de date que vous souhaitez utiliser, utilisez DateTime.ParseExact
( article MSDN ).
Ce que vous utiliseriez dans une situation comme celle-ci (où vous utilisez un format de date de style britannique):
ssortingng[] formats= { "dd/MM/yyyy" } var dateTime = DateTime.ParseExact("01/01/2001", formats, new CultureInfo("en-US"), DateTimeStyles.None);
Vous avez besoin d’un M
majuscule pour la partie mois.
ssortingng strDate = DateTime.Now.ToSsortingng("MM/dd/yyyy");
La minuscule m
sert à la sortie (et à l’parsing) d’une minute (telle que h:mm
).
Par exemple, une chaîne de date complète pourrait ressembler à ceci:
ssortingng strDate = DateTime.Now.ToSsortingng("MM/dd/yyyy h:mm");
Notez la différence mM
majuscule / minuscule.
De même, si vous traitez toujours avec la même chaîne de format de date / heure, vous pouvez simplifier la tâche en les écrivant en tant que méthodes d’extension C #.
public static class DateTimeMyFormatExtensions { public static ssortingng ToMyFormatSsortingng(this DateTime dt) { return dt.ToSsortingng("MM/dd/yyyy"); } } public static class SsortingngMyDateTimeFormatExtension { public static DateTime ParseMyFormatDateTime(this ssortingng s) { var culture = System.Globalization.CultureInfo.CurrentCulture; return DateTime.ParseExact(s, "MM/dd/yyyy", culture); } }
EXEMPLE: Traduire entre DateTime / ssortingng
DateTime now = DateTime.Now; ssortingng strNow = now.ToMyFormatSsortingng(); DateTime nowAgain = strNow.ParseMyFormatDateTime();
Notez qu’il n’ya AUCUN moyen de stocker des informations de format DateTime
personnalisées à utiliser par default
comme dans .NET, la mise en forme de chaîne dépend de la culture actuellement définie, c.-à-d.
System.Globalization.CultureInfo.CurrentCulture.
La seule façon simple de procéder consiste à appliquer une méthode d’extension personnalisée.
En outre, l’autre solution simple consiste à utiliser une autre classe “conteneur” ou “wrapper” pour votre DateTime, c’est-à-dire une classe spéciale avec explicit operator
défini qui se traduit automatiquement par DateTime / ssortingng. Mais c’est un territoire dangereux.
J’ai fait comme ça
var datetoEnter= DateTime.ParseExact(createdDate, "dd/mm/yyyy", CultureInfo.InvariantCulture);
Vous pouvez aussi changer le format en faisant cela
ssortingng fecha = DateTime.Now.ToSsortingng(format:"dd-MM-yyyy");
// cela change le "/"
pour le "-"
Solution
DateTime.Now.ToSsortingng("MM/dd/yyyy", CultureInfo.InvariantCulture)
Ce qui suit fonctionne pour moi.
ssortingng strToday = DateTime.Today.ToSsortingng("MM/dd/yyyy");