Saltar al contenido

¿Cómo obtener nombres de días localizados en Delphi?

Por fin luego de tanto trabajar ya hallamos el resultado de este atolladero que tantos usuarios de nuestra web presentan. Si tienes algo que compartir puedes compartir tu conocimiento.

Solución:

Puede obtener diferentes configuraciones locales de la siguiente manera:

var
  fs : TFormatSettings;
  x  : string;
begin
  GetLocaleFormatSettings(GetThreadlocale, fs);
  x:= FormatDateTime('%mmmm', Now, fs);
  // etc..
end;

GetThreadLocale proporciona el LCID actual, pero usted mismo puede usar otro número.

Registro TFormatSettings:

TFormatSettings = record
  CurrencyFormat: Byte;
  NegCurrFormat: Byte;
  ThousandSeparator: Char;
  DecimalSeparator: Char;
  CurrencyDecimals: Byte;
  DateSeparator: Char;
  TimeSeparator: Char;
  ListSeparator: Char;
  CurrencyString: string;
  ShortDateFormat: string;
  LongDateFormat: string;
  TimeAMString: string;
  TimePMString: string;
  ShortTimeFormat: string;
  LongTimeFormat: string;
  ShortMonthNames: array[1..12] of string;
  LongMonthNames: array[1..12] of string;
  ShortDayNames: array[1..7] of string;
  LongDayNames: array[1..7] of string;
  TwoDigitYearCenturyWindow: Word;
end;

Consulte también http://www.microsoft.com/globaldev/reference/lcid-all.mspx para obtener una lista completa.

Incluso puede cambiar la configuración de formato usted mismo para crear resultados realmente elegantes.

I pensamiento Encontré una forma simple para la “configuración regional actual”.

Hay matrices globales LongDayNames[] y nombres de días cortos[] definido en system.pas

Entonces..

  Label.Text = LongDayName[DayMonday];

debería funcionar, por ejemplo. Excepto que devuelve “domingo”. Esto se debe a que Delphi admite internamente esquemas de numeración de dos días, y DayMonday es una constante ISO8601 1, mientras que LongDayName array espera el domingo como el primer día de la semana. C++Builder confunde aún más las cosas porque el string array luego comienza en cero, no en uno.

Si te ha sido provechoso nuestro post, te agradeceríamos que lo compartas con otros seniors de este modo contrubuyes a difundir esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *