J'ai un problème énorme avec le code suivant: Le problème est, c # utilise le séparateur de date système au lieu d'utiliser toujours "/" comme je l'ai spécifié. Si j'exécute ce code, je reçois la sortie suivante: p> mais si je vais à "Panneau de configuration" -> "Options régionales et linguistiques" et modifier le séparateur de date à "-", je reçois p> même si dans la méthode de tostring, j'ai spécifié à utiliser "/". Est-ce que je manque quelque chose ou ceci est un bug de framework c # / .net? P> p>
8 Réponses :
Essayez comme ceci: ou échapper au / code> p>
Ok, maintenant ça marche. BTW, semble plutôt stupide de devoir spécifier cet paramètre si j'écris le format exact que je veux dans la chaîne ...
@Kaharas, / code> a une signification particulière dans le format => Il représente le séparateur de date pour la culture actuelle.
@kaharas, Aliostad: Pourquoi cela semble-t-il stupide? Seriez-vous attendre dd code> ou aaaa code> pour apparaître Verbatim dans la chaîne formatée aussi?
@Lukeh: Les 2 premières réponses, n'ont rien dit sur le "/ l'espace réservateur de la date", mais il suffit de t'appréler pour ajouter le paramètre cultureinfo.invarianTculture. Et, si tel était le cas (C # réinitialiser le format pour utiliser le séparateur de date système), vous n'êtes pas d'accord que cela aurait été assez stupide? Je vois maintenant, l'évasion / "a été ajouté :)
invariantCulture code> devrait faire le tour
Vous pouvez obtenir '-' ou ":" basé sur les formats que vous fournissez. Reportez-vous à http://msdn.microsoft.com/en-us/library/zdtaw1bw. ASPX P>
Le / est un séparateur de date: p>
http://msdn.microsoft.com/en-us/library/ 8KB3DDDD4.aspx P>
Si vous avez besoin de séparateur personnalisé: p>
http://msdn.microsoft.com/en-us/ Bibliothèque / 8KB3DDDD4.aspx # Datesparator P>
Le comportement est donc correct p>
Vous pouvez échapper au caractère / code>, car il s'agit du séparateur de date, comme celui-ci: var d = DateTime.Now;
var s = d.ToString(@"yyyy\/MM\/dd");
Ceci est apparemment par conception.
Le travail est implémenté dans une classe interne appelée donc il remplace DateTimeformat code> que vous pouvez voir cet extrait dans formatécustomisé p> Méthode: P> / code> avec datesparator code>. p> p> p>
Le Si vous avez besoin d'un / code> de votre chaîne de format est un espace réservateur à la date Séparateur - Le comportement que vous voyez est par conception et clairement documenté. P>
/ code> puis Vous devez vous échapper dans votre chaîne de format, qui devrait ensuite ressembler à quelque chose comme "aaayy \ / mm \ / dd" em> ou "aaa" / "mm" / 'dd " em>. p>
Le problème est que / est réservé au caractère de date - ce n'est donc pas un bug - c'est une fonctionnalité que celle-ci est interprétée selon les paramètres régionaux.
Essayez ESPAFAING THE / PACAGE AVEC: P> < Pré> xxx pré> p>