Existe-t-il un moyen de définir ou de remplacer le format DateTime par défaut pour une application entière. J'écris une application dans C# .Net MVC 1.0 et utilise beaucoup de génériques et de réflexion. Serait beaucoup plus simple si je pouvais remplacer le format par défaut DateTime.ToString() pour être "jj-MMM-yyyy". Je ne veux pas que ce format change lorsque le site est exécuté sur une machine différente. Pour clarifier, je veux dire spécifiquement appeler la ToString, pas une autre fonction d'extension, c'est à cause du code généré/réfléchi. Serait plus facile de simplement changer la sortie ToString.Définir le format DateTime par défaut C#
Répondre
Le "format par défaut" d'un datetime est:
ShortDatePattern + ' ' + LongTimePattern
au moins dans le courant mono implementation. Cela est particulièrement douloureux au cas où vous voulez afficher quelque chose comme 2001-02-03T04: 05: 06Z-à-dire la date et l'heure combinée comme indiqué dans ISO 8606, mais pas un gros problème dans votre cas:
using System;
using System.Globalization;
using System.Threading;
namespace test {
public static class Program {
public static void Main() {
CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";
culture.DateTimeFormat.LongTimePattern = "";
Thread.CurrentThread.CurrentCulture = culture;
Console.WriteLine(DateTime.Now);
}
}
}
Cette va définir le comportement par défaut de ToString sur datetimes pour retourner le format que vous attendez.
Vous pouvez écrire un ExtensionMethod comme ceci:
public static string ToMyString(this DateTime dateTime)
{
return dateTime.ToString("needed format");
}
Il dépend de leur localisation paramètres de votre application. Change that accordingly pour obtenir le format correct.
Sinon, utilisez une classe d'assistance ou une méthode d'extension qui gère toujours votre DateTime.
public static string ToMyDateTime(this DateTime dateTime) {
return dateTime.ToString("dd-MMMM-yy");
}
DateTime.ToString() combine les chaînes de format personnalisé retournées par les propriétés ShortDatePattern et LongTimePattern du DateTimeFormatInfo. Vous pouvez spécifier ces modèles dans DateTimeFormatInfo.CurrentInfo.
Je n'ai jamais essayé cela moi-même.
Si vous voulez être sûr que votre culture reste la même, configurez-la vous-même pour éviter les problèmes.
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("nl-BE");
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
L'exemple ci-dessus définit la culture du thread en belgo-néerlandais.
CurrentCulture gère l'ensemble de la date et de l'heure et CurrentUICulture gère les ressources similaires à la localisation de l'interface utilisateur.
- 1. DateTime Format en C#
- 2. Datetime en java et mappage datetime par défaut en hibernation
- 3. Comment définir un format DateTime global dans un projet ASP.NET?
- 4. DateTime Hex Format
- 5. LinqDataSource et le format DateTime
- 6. comment valider le format datetime
- 7. Comment modifier le format de tri universel DateTime dans .NET?
- 8. Format DateTime sur le serveur d'hébergement
- 9. Comment définir l'imprimante par défaut de Windows en C#?
- 10. DateTime format hexadécimal
- 11. Microsoft Access DateTime par défaut maintenant via SQL
- 12. Définir l'emplacement par défaut de configuration
- 13. multisélectionner, définir les valeurs sélectionnées par défaut
- 14. Impossible de définir le shell de connexion par défaut IPython
- 15. Comment définir le bouton par défaut dans PyGTK?
- 16. Insérer Tracepoint: comment définir le message par défaut?
- 17. Définir le niveau d'isolation par défaut pour Microsoft.Practices.EnterpriseLibrary
- 18. C# paramètres par défaut
- 19. Format de date par défaut dans Rails (Besoin d'être ddmmyyyy)
- 20. ASP .NET - Définir des valeurs par défaut de ListView InsertItemTemplate
- 21. Format WPF DateTime dans TextBlock?
- 22. Comment définir une date-valeur par défaut Postgresql comme 'YYYYMM'?
- 23. Sql Server DATETIME format incorrrect
- 24. Utilisation de liaisons de modèle ASP.NET par défaut avec DateTime
- 25. Réglage des polices par défaut en C#
- 26. ASP.NET AJAX et le format DateTime sur le client
- 27. DateTime in C#
- 28. Dynamic Include Comment définir la page par défaut?
- 29. Définir le format de papier d'impression par défaut lors de l'impression d'un fichier PDF généré à partir de rapports Crystal?
- 30. Existe-t-il un moyen de définir le format de page par défaut lors de l'impression dans IE7?
Merci pour la réponse, où ce code devrait être mis dans un projet .Net MVC 1.0, j'ai essayé dans la vue et cela fonctionne, mais pas dans le global.asax –
Que voulez-vous dire par "dans la vue" ? Et qu'avez-vous fait dans le global.asax exactement? –
Si je mets <% CultureInfo culture = (CultureInfo) CultureInfo.CurrentCulture.Clone(); culture.DateTimeFormat.ShortDatePattern = "dd-MMM-aaaa"; culture.DateTimeFormat.LongTimePattern = ""; Thread.CurrentThread.CurrentCulture = culture; %> en haut de la vue, il formate correctement tous les DateTimes sur la page. Cependant, lorsque je mets ce code dans le fichier Application_Start de global.asax, cela ne fonctionne pas. Je présume que cela a à voir avec le multi-threading des requêtes dans IIS. Où est le meilleur endroit pour mettre ce code à affecter mon site entier. –