10
votes

DateTimeFormatinfo Format de chaîne pour la journée de la semaine. Jeudi devient TH

existe-t-il un DateTimeFormatinfo Modèle de format pour convertir une semaine de semaine en deux caractères? Par exemple, Mardi devient Tu, mercredi devient nous. La chaîne de format doit être conforme au DateTimeFormatinfo pour les formats de date.

Addition:

Peut-être que je recherche une solution pour étendre denttitimeformatinfo pour inclure des formats personnalisés?


1 commentaires

Vérifiez mon message sur AbrévieddayNames.


4 Réponses :


22
votes

La ferme que vous pouvez obtenir est le "ddd" Spécificateur de format personnalisé - Cela produit trois abréviations à lettres, donc pas exactement ce que vous voulez. Il n'y a rien de construit à ce que vous voulez exactement ce que vous voulez.

Vous pouvez toujours prendre les deux premiers caractères de celle-ci: xxx

malheureusement, vous ne pouvez pas étendre datetimeformatinfo car il est déclaré comme < Code> scellé .


5 commentaires

Je sais mais ce n'est pas deux personnages comme je veux.


@Tony_henrich - Donc, vous voulez utiliser un modèle de format qui n'existe pas dans le cadre?


Oui, mais si cela deviendra trop compliqué, "DDD" pourrait faire.


@Tony_henrich - DateTimeFormatinfo ne peut pas être étendu, car il est déclaré comme scellé .


@Steven - vous avez raison. Mais cela ne vous donne pas une abréviation de deux lettres alors que l'OP a demandé.



1
votes

Essayez ceci xxx

s'il doit être un formatPattern, essayez ceci: xxx


0 commentaires

1
votes

Pour utiliser le DateTimeFormatinfo Spécifiquement, vous pouvez

dtfi.GetShortestDayName(DateTime.Now.DayOfWeek);


0 commentaires

5
votes

Vous devez obtenir le DateTimeFormatinfo de la culture que vous utilisez, puis modifiez la matrice de chaînes appelées abréviatedaynames . Après cela, ddd retournera th pour vous.

http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.abbreviédaynames (vs.71) .aspx

DateTimeFormatinfo.abbreviédaynames
Obtient ou définit un tableau unidimensionnel de type chaîne contenant le noms abrégés spécifiques à la culture de les jours de la semaine.

Voici un échantillon de la façon de le faire: xxx

une note de plus: bien sûr, si vous êtes contraint de fournir le iFormatProvider < / Code>, vous pouvez ensuite remplacer le fichier cultureInfo , par exemple: xxx





Plus sur CurrentCulture:

HTTP : //msdn.microsoft.com/en-us/library/system.threading.thread.currenttuiculture.aspx

fil.CurrentUculature Propriété
Obtient ou définit le Culture actuelle utilisée par la ressource Responsable de rechercher la culture spécifique Ressources au moment de l'exécution.


3 commentaires

J'ai oublié de mentionner cela, mais à tout moment, vous créez une nouvelle instance de DateTimeIfo, l'instance est créée à partir de la culture invariante, alors gardez cela à l'esprit. Bien sûr, si vous allez personnaliser complètement le DateTimeInfo, cela devient un point de théâtre.


DT.ADDDAYS (I) .TOSTRING ("DDD", DTINFO) est obsolète. dtinfo.getdayname (dt.dayofeek) devrait fonctionner.


@JoshCodes: Ça vous procurera "jeudi", pas "th". N'oubliez pas que ce que je fais ici remplace les noms de jour abrégé par défaut, puis les appelant. Ce que vous faites, utilise le nom de la journée complète sans abrégé.