Comment obtenir un de Longue Date au format DateTime sans un jour de la semaine
Je suis à la recherche d'un jeu de paramètres régionaux-connaissance de la manière d'acquérir de l'un de longue date heure sans le jour de la semaine. Telle une bête qui existent?
Ci-dessous le code que j'utilise pour obtenir le format de date longue, y compris le jour de la semaine:
DateTime time = ...
String formattedDate = time.ToLongDateString();
Modifier
Des exemples de ce que je voudrais voir:
- en-us: décembre 5, 2009
- fr-fr: 5 décembre 2009
- es-es: 05 de diciembre de 2009
ToLongDateString() retourne le suivant:
- fr-etats-unis: le samedi 5 décembre 2009
- fr-fr: samedi 5 décembre 2009
- es-es: sábado, 05 de diciembre de 2009
OriginalL'auteur Adam Tegen | 2009-09-08
Vous devez vous connecter pour publier un commentaire.
Cela semblait faire l'affaire.
Cela semble venir avec les cordes que je cherchais.
Voir code ci-dessous:
Techniquement, il ne serait probablement pas fonctionner si un format long, avait le nom de la journée, prise en sandwich au milieu. Pour cela, je devrais choisir le modèle avec la plus longue sous-chaîne commune au lieu de la plus longue correspondance exacte.
OriginalL'auteur Adam Tegen
OriginalL'auteur Reza
Un très horrible, horrible façon d'accomplir ceci est de supprimer les spécificateurs de format que vous ne voulez pas partir de l'existant LongDatePattern:
D'accord, c'est un "très horrible, horrible" solution 😀 on pourrait ajouter que la regex: /,?\s*dddd?/
Je pense en ajoutant que pour l'expression rationnelle pourrait l'aider, oui.
OriginalL'auteur user7116
Si le LongDate séquence est aussi de la culture spécifique, alors je crains que vous êtes hors de la chance et vous allez avoir à écrire de code actuel pour cette. Sinon, une collection de balises de mise en forme fera l'affaire.
J'ai peur de ce que vous avez à faire est de créer un tableau de 7 cordes (une pour chaque jour) dans la culture locale, et de supprimer les chaînes à partir de votre LongDate format de sortie. Ensuite, assurez-vous de retirer tous les dupliqué /'s -'s et des espaces.
Espère qu'il y a une meilleure façon, mais je ne le vois pas.
Stephen: je suis d'accord. Mais comment savez-vous la mise en forme appropriée pour la culture actuelle? L'ordre de l'Année, le mois et le jour, le séparateur de caractères, etc. etc.
exactement, vous ne pouvez rien. Si c'est important, vous devez aller à la recherche de la mise en forme appropriées pour chaque culture, comme Microsoft l'a fait avec cultureInfo.DateTimeFormat.LongDatePattern.
OriginalL'auteur David Rutten
C'est un vieux, vieux thead, mais je suis tombé sur ça parce que c'parfaitement adapté au cas d'utilisation j'ai besoin de résoudre. J'ai fini par écrire un morceau de code qui fonctionne, j'ai donc pensé que je pourrais l'inclure pour ceux qui en ont besoin. (Il a un peu plus de trucs, comme par défaut la date du jour, et permettant soit la date de chaîne pour une culture, ou un avec la jour-de-la-semaine supprimé):
OriginalL'auteur Curt
J'ai élargi sur la suggestion de Bart Calixto pour résoudre le jj MMM aaaa question (ici en Australie, nous avons également l'utilisation royaume-UNI, le format de date jj/mm/aa)
J'ai aussi souvent besoin de convertir entre Aust et NOUS les formats de date.
Ce code résout le problème (ma version est en VB)
Avant l'appel de la fonction, vous devez définir la culture, je le fais de cette façon, après l'obtention du pays du visiteur à partir de http://ipinfo.io
Après le réglage de l'UA ou GO culture du résultat est de 18 août 2010
Après le réglage de la culture américaine résultat est le 18 août 2010
Adam êtes-vous d'accord cela résout le problème de mise en forme vous allusion?
Merci Bart, c'était très agréable de code.
N'oubliez pas d'ajouter
Dim cult As System.Globalization.CultureInfo
aprèsHérite Du Système.Web.L'INTERFACE utilisateur.Page
source.DayOfWeek.ToString()
avecsource.ToString("dddd", cult)
afin qu'il fonctionne avec d'autres langues, pas seulement en anglais.OriginalL'auteur Frank Smith
Pourquoi ne pas obtenir le LongDate et couper la première partie où le jour de la semaine s'affiche?
OriginalL'auteur itsclarke
Vieux post, mais je suis en utilisant ce:
OriginalL'auteur Bart Calixto
Ma solution:
La dernière ligne:
Testé pour chaque culture de
OriginalL'auteur Michal Kováč
L'amélioration de la accepté de répondre,
GetAllDateTimePatterns
peut prendre un paramètre pour limiter le résultat des tendances relatives à une norme de format de chaîne de caractères, comme " D " pour le modèle de date longue.Par exemple,
GetAllDateTimePatterns('D')
est actuellement de retour cette pour fr-fr:et ce pour zh-HK:
En supposant qu'ils sont énumérés dans l'ordre de préférence ou de prévalence, on peut sélectionner la première option qui ne contient pas le jour de la semaine.
Ici sont les méthodes d'extension de sorte que vous pouvez simplement utiliser
myDateTime.ToLongDateStringWithoutDayOfWeek()
etmyDateTime.ToLongDateTimeStringWithoutDayOfWeek()
.OriginalL'auteur franzo
C'est une amélioration de la réponse de Reza, qui ne fonctionne pas correctement avec certaines localisations.
OriginalL'auteur VDWWD
Essayer:
OriginalL'auteur waqasahmed
Quoi de mal avec:
OriginalL'auteur Dementic
Il suffit de spécifier le format:
OriginalL'auteur Mindless