9
votes

C # First Monthster en majuscule

J'affiche un nom de mois comme ceci: xxx

Cependant, lorsque vous utilisez suédois tous les noms de mois de mois en minuscule.

Y a-t-il des trucs soignés pour faire de la première lettre majuscule lors de la mise en forme dates? Ou dois-je écrire une fonction pour cela?


3 commentaires

Dans les noms de mois suédois sont écrits en minuscules. Pourquoi voudriez-vous utiliser un formatage différent? Est-ce que c'est le premier mot d'une phrase? Dans ce cas, il ne s'agit plus de formatage de la date ...


"Si une date survient au début d'une phrase, ce n'est pas la mise en forme de la date." Comment travaillez-vous cela?


Vous pouvez utiliser ce format "mmmm" pour obtenir la première lettre du mois en majuscule: DateTime DT = nouvelle dateTime (2008, 3, 9, 16, 5, 7, 123); String.format ("{0: DDDD, mmmm d, aaaa}", dt); // "Dimanche, 9 mars 2008" Pour plus d'informations: docs.microsoft.com/es-es/dotnet/standard/base-types/... [! [Je l'ai essayé dans ce Web: REXTESTESTER.COM /] [1]] [1] Il mettra dans la langue de votre serveur.


4 Réponses :


0
votes

0 commentaires

11
votes

Il y a déjà de bonnes réponses ici. Si vous souhaitez une fonction, vous pouvez écrire:

char.ToUpper(s[0]) + s.Substring(1);


1 commentaires

Utilisez textinfo.totitlecase () à la place.



14
votes

Je suggérerais de cloner une culture et de ré-définir un nouveau nom de mois: xxx pré>

puis utilisez-le dans string.format code> méthode: P>

// date holds "Mars"
var date = String.Format(swedish, "{0:MMMM}", DateTime.Now);


2 commentaires

Joli! C'était très utile pour moi parce que je devais travailler avec des mois trop de fois dans mon code, l'utilisation de sous-chaînes serait donc très gênante.


C'est la même chose que j'ai proposé avant XD! Je ne sais pas pourquoi le mien a des votes négatifs ...



-3
votes

Vous pouvez utiliser ce format "mmmm" pour obtenir la première lettre du mois en majuscule combinée avec DateTimeFormatinfo.MonThnames Propriété: xxx

pour plus d'informations:

  1. HTTPS : //docs.microsoft.com/es-es/dotnet/standard/base-types/custom-date-and-time-Format-strings
  2. https://www.cshars-examples.net/string-format- DateTime /

    je l'ai essayé dans ce web :

    https: //rexter.com /

    Cela le mettra dans la langue de la date de votre langue spécifique.

    De cette façon est plus facile et la solution la plus optimale parce que vous N'ayez pas besoin de développer un code, il vous suffit d'utiliser les formateurs de chaîne existants C # Configurations.

    Si vous devez être invariant de la culture, vous pouvez utiliser DateTimeFormatinfo.invariinfo pour éviter la référence de la culture ou spécifier votre Noms mensuels personnalisés (certaines langues n'ont peut-être pas de majuscule dans la première lettre en mois):

    https://docs.microsoft.com/es-es/dotnet/api/system.globalization.dateTimeFormatinfo.MonThnames?View- 5.0


12 commentaires

mmmm ne renvoie pas la première lettre du mois en majuscule. Il renvoie le nom complet du mois, qui peut être capitalisé ou non en fonction de la culture utilisée.


Dans la documentation officielle indique que, dans l'exemple qu'il a demandé, c'est pour l'espagnol (avant d'avoir amélioré sa question XD), et en espagnol, cela fonctionne comme il s'attend à ce que ce soit et par défaut dans invariant contienne les mois avec la première lettre en majuscule: docs.microsoft.com/es-es-es / dotnet / API / ...


Ils n'ont pas demandé l'espagnol, ils ont demandé suédois. Dans la documentation officielle, vous pouvez voir que, par exemple, Danois (DA-DK) ne capitalise pas.


docs.microsoft.com/ ES-ES / DOTNET / API / ... Cela fonctionne pour AnycAast, si vous devez spécifier dans une langue, vous pouvez utiliser inviartinfo ou spécifier-la dans des noms de mois pour cette langue, mais c'est la même approche que j'ai proposée en premier lieu (Utilisation du format MMMM)


Regardez à nouveau la documentation ( docs.microsoft.com/en-us/dotnet/tandard/base-types/... ), et regarder, par exemple, le deuxième et troisième échantillon que Microsoft fournit: 2009-06- 15T13: 45: 30 -> Juni (DA-DK) et 2009-06-15T13: 45: 30 -> Ujuni (Zu-ZA) . Les premières lettres sont j et u , pas j et u u


Regardez à nouveau la documentation et ma réponse, vous pouvez spécifier certaines langues ces noms Noms en utilisant invionnantfo ou spécifiant vos propres noms de mois! docs.microsoft.com/ es-es / dotnet / API / ...


Si vous pouvez spécifier vos propres noms mois, vous pouvez mettre la première lettre en majuscule (ou ce que vous voulez!), Vous ne voyez pas? Et vous devez utiliser le format MMMM pour cette


"Si vous pouvez spécifier vos propres noms mois ..." - euh, sûr. Mais c'est déjà ce que Cette réponse a expliqué, sauf d'une manière beaucoup plus utile, directe (en effet, votre réponse n'a même pas compris que informations jusqu'à ce que les commentaires sont invités). En bout de ligne: cette réponse n'a rien ajouté utile à cette question.


Si vous voyez l'historique des deux réponses, vous pouvez voir que j'ai mis ce format MMMM devant lui et je l'ai fait différent (il utilise une autre façon d'initialiser les noms de mois)


Je choisirais de cette façon au lieu de faire un code pour initialiser les données des noms de notes car chaque fois que vous exécutez cela, vous devez faire une boucle pour initialiser chaque mois le nom de cette langue au lieu d'utiliser des constantes, tout le monde peut choisir ce que préfère.


Et ma réponse a été améliorée par les commentaires de Jonathan si vous voyez mes commentaires intérieurs dans ce fil, je n'ai pas vu la réponse que vous mentionnez jusqu'à ce que je modifie la réponse finale et que je cherche pourquoi a été mis de commentaires négatifs quand c'est correct, je l'ai fait Tout indépendant de la réponse mentionnée, à l'aide de REXTESTER


@Nikashavoncarstein Votre réponse n'a pas été améliorée par le commentaire de Jonathan, votre réponse a été réfutée par elle. Le Réponse Peter Duniho fait référence à a 10 ans, il n'est donc pas clair ce que vous essayez de réaliser en prétendant que ce n'était pas là quand vous avez répondu.