Je dois convertir une chaîne au format mm/jj/aaaa en variable datetime, mais elle doit rester au format mm/jj/aaaa.
string strDate = DateTime.Now.ToString("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 objet 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):
string[] formats= { "dd/MM/yyyy" }
var dateTime = DateTime.ParseExact("01/01/2001", formats, new CultureInfo("en-US"), DateTimeStyles.None);
Vous avez besoin d'une majuscule M
pour la partie mois.
string strDate = DateTime.Now.ToString("MM/dd/yyyy");
Les minuscules m
permettent de produire (et d’analyser) une minute (telle que h:mm
).
par exemple. une chaîne de date complète pourrait ressembler à ceci:
string strDate = DateTime.Now.ToString("MM/dd/yyyy h:mm");
Notez la différence majuscule/minuscule mM
.
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 string ToMyFormatString(this DateTime dt)
{
return dt.ToString("MM/dd/yyyy");
}
}
public static class StringMyDateTimeFormatExtension
{
public static DateTime ParseMyFormatDateTime(this string s)
{
var culture = System.Globalization.CultureInfo.CurrentCulture;
return DateTime.ParseExact(s, "MM/dd/yyyy", culture);
}
}
EXEMPLE: Traduction entre DateTime/string
DateTime now = DateTime.Now;
string strNow = now.ToMyFormatString();
DateTime nowAgain = strNow.ParseMyFormatDateTime();
Notez qu’il existe un moyen [~ # ~] non [~ # ~] de stocker des informations de format personnalisé DateTime
à utiliser comme default
comme dans .NET, la mise en forme de chaînes dépend en grande partie de la culture actuellement définie, c'est-à-dire.
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 vers et à partir de DateTime/string. Mais c'est un territoire dangereux.
Vous pouvez aussi changer le format en faisant cela
string fecha = DateTime.Now.ToString(format:"dd-MM-yyyy");
// cela change le "/"
pour le "-"
J'ai fait comme ça
var datetoEnter= DateTime.ParseExact(createdDate, "dd/mm/yyyy", CultureInfo.InvariantCulture);
Solution
DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture)
Ce qui suit fonctionne pour moi.
string strToday = DateTime.Today.ToString("MM/dd/yyyy");