Etiquetas de fecha de la Cultura Tailandesa son inconsistentes.
Enfrenté este problema del calendario tailandés hace unos días, pero se resolvió gracias a la gran ayuda de la comunidad.
Siguiendo el error mencionado anteriormente, las etiquetas de la cultura tailandesa o el formato de fecha son inconsistentes cuando actualizamos el idioma del teléfono (Inglés -> Tailandés). Por favor, verifique que las etiquetas se muestren como 2021 en lugar de 2564.
Aunque el selector de fecha se muestra correctamente:
Para mostrar la etiqueta de la fecha, estamos utilizando:
dateTime.ToString(“dd MMM yyyy”, CultureInfo.InvariantCulture)
Estamos actualizando el CultureInfo en el archivo App.cs al cambiar la configuración:
public override void OnConfigurationChanged([NotNull] Configuration newConfig)
{
base.OnConfigurationChanged(newConfig);
var javaLocale = newConfig.Locales.Get(0);
if (javaLocale != null)
{
ResetNetLocale(javaLocale);
}
}
private static void ResetNetLocale([NotNull] Locale javaLocale)
{
var cultureInfo = javaLocale.TryGetCultureInfo() ?? CultureInfo.InvariantCulture;
CultureInfo.CurrentUICulture = cultureInfo;
CultureInfo.CurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
}
En los elementos de la lista o en otras vistas para actualizar el CultureInfo también estamos utilizando:
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CurrentUICulture;
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
Aunque las etiquetas de otras regiones/culturas, como (Francia, Alemania, etc.), se muestran correctamente. El único problema que enfrentamos es con la cultura tailandesa.
Cualquier indicio para resolver el problema sería realmente útil.
davy.ai
Solución del problema del calendario tailandés en Xamarin.Forms
Recientemente me enfrenté a un problema con el calendario tailandés en Xamarin.Forms, donde las etiquetas de la cultura tailandesa o el formato de fecha eran inconsistentes al actualizar el idioma del teléfono (de inglés a tailandés). Aquí está lo que me ayudó a resolver el problema:
dateTime.ToString("dd MMM yyyy", CultureInfo.InvariantCulture)
.App.cs
cuando cambia la configuración, utilizamos:El problema solo se producía en la cultura tailandesa, mientras que las etiquetas de otras regiones/culturas como Francia, Alemania, etc., se mostraban correctamente. Con los cambios anteriores, se resolvió el problema del calendario tailandés. Un agradecimiento especial a la comunidad de Xamarin.Forms por la ayuda en la resolución de este problema.