Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

217
Visualizações
¿Por qué GetShortestDayName devuelve un nombre más corto de lo esperado?

Se supone que DateTimeFormatInfo.GetShortestDayName(DayOfWeek) devuelve nombres como Su , Mo , etc., como se muestra en el resultado del ejemplo en la documentación de Microsoft .

En cambio, solo obtengo una letra: S , M , etc.

Código para reproducir: (estoy usando WPF .Net 6)

 DateTimeFormatInfo en_us = CultureInfo.GetCultureInfo("en-US").DateTimeFormat; string s = en_us.GetShortestDayName(DayOfWeek.Tuesday);

Esto no me sirve ya que martes y jueves por ejemplo, tienen el mismo identificador. ¿Qué podría causar este problema, para que pueda solucionarlo y obtener el Su , Mo , etc. esperado?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Puede agregar la siguiente configuración a su archivo de proyecto ( .csproj ) para no usar las API de globalización de ICU que se introdujeron en .NET 5:

 <ItemGroup> <RuntimeHostConfigurationOption Include="System.Globalization.UseNls" Value="true" /> </ItemGroup>
over 4 years ago · Santiago Trujillo Relatório

0

Es probable que esto sea "por diseño" como resultado de cambiar de la forma específica de Windows de obtener información de globalización a datos disponibles públicamente.

El siguiente artículo Cambio importante: las API de globalización usan bibliotecas ICU en Windows explican el cambio (pero, de hecho, no entra en detalles como "si se cambian los nombres cortos"):

A partir de .NET 5, si una aplicación se ejecuta en la actualización de mayo de 2019 de Windows 10 o posterior, las bibliotecas .NET usan las API de globalización de ICU de manera predeterminada.

Y el sitio de la UCI enumera las abreviaturas como uno de los componentes (el resaltado es mío):

Formato: formatee números, fechas, horas y cantidades de moneda de acuerdo con las convenciones de una ubicación elegida. Esto incluye traducir los nombres de los meses y los días al idioma seleccionado, elegir las abreviaturas apropiadas , ordenar los campos correctamente, etc. Estos datos también provienen del repositorio de datos de configuración regional común.

over 4 years ago · Santiago Trujillo Relatório

0

Esto parece ser un cambio de .NET 4.7.2 a .NET Core 6 (posiblemente todas las versiones de .NET Core; no puedo confirmarlo en este momento).

En .NET 4.7.2 obtengo resultados de dos caracteres; en .NET 6 obtengo resultados de un carácter.

Tampoco veo ninguna documentación en línea que indique que el cambio fue un cambio de ruptura intencional.

Enviaría un ticket de error para actualizar la documentación (y admitir que fue un cambio importante) o revertir el comportamiento.

Una solución sería tomar los primeros dos caracteres de GetAbbreviatedDayName .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda