Estoy trabajando en la localización de un sitio web en francés. Sin embargo, no se supone que deba cambiar el formato de fecha a francés. Debe permanecer según el formato en-us, incluso si la cultura está configurada en fr-ca, es decir, cuando el resto de los contenidos estén en francés, el formato de fecha aún debe estar en inglés (en-us).Cambiar el formato de fecha a en-us mientras culture es fr-ca
Respuesta
Sorprendentemente me dieron una respuesta muy simple. Al configurar Culture y UICulture, todo lo que tengo que hacer es establecer Culture Property en en us siempre. Esto dará como resultado que se muestre el formato de fecha en inglés siempre.
en la cuerda, cuando se muestra la fecha, haga lo siguiente:
CultureInfo ci = new CultureInfo("en-US");
string s = dateTimeObject.ToString(ci);
Este es un ejemplo simplificado sin embargo, sólo tiene que hacer el trabajo necesario que quiere hacer en el objeto DateTime
.
Para cambiar la forma en que se formatean las fechas, podría create a custom CultureInfo, en función de un CultureInfo existente (en su caso "fr-CA"), modificando solo los formatos de fecha. No tengo ninguna experiencia en esto, pero el arículo enlazado y this article explica cómo se hace. Supuestamente, no es muy difícil.
Imagino que la configuración de System.Threading.Thread.CurrentThread.CurrentCulture
a una instancia de su CultureInfo personalizado (por ejemplo, en el evento Page.Load) debería hacer el trabajo.
O bien, utilizar la clase CultureInfo para especificar la cultura en función de cada cadena:
CultureInfo culture = new CultureInfo("en-US");
Cada vez que se escribe una fecha para la página, utilice la siguiente sintaxis:
myDate.ToString("d", culture);
o
string.Format(
culture,
"This is a string containing a date: {0:d}",
myDate);
Th La clase e CultureInfo
reside en el espacio de nombres System.Globalization
y d
en el ejemplo anterior es el formato en el que se imprime la fecha. See John Sheehan's ".NET Format String Quick Reference" cheat sheet para obtener más información sobre las cadenas de formato.
Thanks Guys !!!! Parece que tus sugerencias están funcionando para mí. Intenté crear una cultura personalizada que amplíe las características de fr-ca y cambie su formato de fecha a en-us. Este es el código
CultureInfo ci = new CultureInfo("fr-ca");
DateTimeFormatInfo dateformat = new DateTimeFormatInfo();
dateformat.FullDateTimePattern = "dddd, mmmm dd, yyyy h:mm:ss tt";// Date format of en-us
ci.DateTimeFormat = dateformat;
CultureAndRegionInfoBuilder obj = new CultureAndRegionInfoBuilder("fr-ca", CultureAndRegionModifiers.Replacement);
obj.LoadDataFromCultureInfo(ci);
obj.Register();
Una vez que el código registra nuevo FR-ca, el formato de fecha de la FR-ca será el mismo que el de en-us. El código se puede usar en Page_Load.
Aquí está el código anterior en snipet código:
CultureInfo ci = new CultureInfo("fr-ca");
DateTimeFormatInfo dateformat = new DateTimeFormatInfo();
dateformat.FullDateTimePattern = "dddd, mmmm dd, yyyy h:mm:ss tt";// Date format of en-us
ci.DateTimeFormat = dateformat;
CultureAndRegionInfoBuilder obj = new CultureAndRegionInfoBuilder("fr-ca", CultureAndRegionModifiers.Replacement);
obj.LoadDataFromCultureInfo(ci);
obj.Register();
En mi caso, eso es lo que hice. Tuve que establecer el idioma de la aplicación, también determinar si el idioma es de derecha a izquierda, pero también era necesario para mantener el formato estándar de fecha y hora. Así que eso fue lo que hice:
string culture = "ar-SA";
//Set language and culture to Arabic
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(culture);
//But independent of language, keep datetime format same
DateTimeFormatInfo englishDateTimeFormat = new CultureInfo("en-CA").DateTimeFormat;
Thread.CurrentThread.CurrentCulture.DateTimeFormat = englishDateTimeFormat;
- 1. cambiar el formato de fecha en JSF
- 2. cambiar el formato de fecha en php
- 3. Cambiar el formato de fecha a "% d /% m /% Y"
- 4. Cómo cambiar el formato de fecha de DateTimePicker en vb.net
- 5. cambiar el formato de fecha predeterminado en ruby on rails?
- 6. ¿Cómo puedo cambiar el formato de fecha en Java?
- 7. Formato de fecha MySQL
- 8. ¿Cómo convertir formato de fecha a palabra?
- 9. ¿cuál es la mejor manera de cambiar el formato de fecha en mysql SELECT?
- 10. String.Format (formato, fecha) ignora el formato
- 11. Jersey + Jackson JSON serialización de formato de fecha - cómo cambiar el formato o usar JacksonJsonProvider personalizado
- 12. .NET Assembly Culture
- 13. Cambiar formato de fecha en la vista para DD AAAA
- 14. convertir el formato JSON fecha
- 15. Convertir la fecha de Javascript a ASP.NET Formato de fecha
- 16. Formato de fecha de Java a formato de fecha de JavaScript
- 17. XSLT formato de fecha
- 18. fecha sql convertir a formato de cadena
- 19. Formato de fecha PHP
- 20. Formato de fecha JAVA
- 21. jQuery datepicker's dateFormat - cómo integrar con .NET culture actual DateTimeFormat
- 22. formato de fecha en el script msbuild?
- 23. Cambiar el formato de fecha y hora en el eje mschart
- 24. PHP Fecha en el formato de fecha iCal para DTSTART
- 25. Cambio de formato de fecha y hora en formato numérico
- 26. DB2 Formato de fecha
- 27. ¿Cómo cambiar el idioma y el formato de fecha en SQL Server?
- 28. selector de fechas en Yii es el almacenamiento de datos mientras que el formato de d mm aa
- 29. ¿Cómo cambiar el formato de fecha en el control Silverlight DatePicker?
- 30. Java equivalente de Invariant Culture
Si lo hago de esta manera tendré que cambiar el código en todas partes. ¿No se puede hacer esto globalmente? –
@Nadeem: es posible crear su propio CultureInfo. Ver mi respuesta actualizada. – bernhof