Recuperar información de fecha y hora

En este tema se incluyen instrucciones para usar las funciones NLS en las aplicaciones para recuperar información de fecha y hora , así como datos de duración. Si la aplicación debe conservar los datos, consulte Uso de datos de configuración regional persistente.

Windows Vista y versiones posteriores: Las funciones descritas en este tema pueden recuperar datos de configuraciones regionales personalizadas. En concreto, se pueden usar para personalizar los formatos de fecha y hora. Por ejemplo, es posible tener un formato de hora como "hhHmm'ss''", lo que da lugar a cadenas de tiempo como "12H34'12''".

Recuperar información de tiempo

La aplicación puede obtener cadenas para cualquier momento en un formato adecuado para la configuración regional actual mediante las funciones GetTimeFormat y GetTimeFormatEx . Cualquiera de las funciones comprueba cada uno de los valores de hora de una estructura SYSTEMTIME válida para determinar que está dentro del intervalo de valores adecuado, ignorando las partes de fecha de la estructura. Si alguno de los valores de hora está fuera del intervalo correcto, se produce un error en la función con el código ERROR_INVALID_PARAMETER. La función no devuelve ningún error para una cadena de formato incorrecto, pero simplemente forma la mejor cadena de tiempo posible.

Nota

Las funciones de hora NLS no incluyen milisegundos como parte de una cadena de tiempo con formato.

 

Para obtener el formato de hora sin realizar ningún formato real, la aplicación puede usar la función GetLocaleInfo o GetLocaleInfoEx , especificando la constante LOCALE_STIMEFORMAT en la llamada.

Usar marcadores de tiempo

Algunos ejemplos de marcadores de tiempo son "AM" y "PM" para inglés (Estados Unidos) y "de." y "du." para español (México). Si TIME_NOTIMEMARKER se especifica en la llamada a GetTimeFormat o GetTimeFormatEx, la función quita los separadores anteriores y sigue el marcador de hora. Si existe un marcador de hora y la marca de TIME_NOTIMEMARKER no se establece en la llamada, la función localiza el marcador de tiempo en función del identificador de configuración regional especificado.

Quitar separadores anteriores a minutos y segundos

La aplicación puede llamar a GetTimeFormat o GetTimeFormatEx con TIME_NOMINUTESORSECONDS o TIME_NOSECONDS especificados para quitar los separadores después de los elementos minutos o segundos.

Usar formato de hora 24 horas

Si la aplicación admite el formato de hora 24 horas, puede llamar a GetTimeFormat o GetTimeFormatEx con TIME_FORCE24HOURFORMAT. A menos que se establezca la marca TIME_NOTIMEMARKER, la función muestra cualquier marcador de tiempo existente.

Recuperar información de fecha

Una aplicación puede recuperar cadenas para cualquier fecha en un formato adecuado para la configuración regional actual mediante las funciones GetDateFormat y GetDateFormatEx . Cualquiera de las funciones comprueba cada uno de los valores de fecha año, mes, día y día de la semana en una estructura SYSTEMTIME válida, ignorando las partes de tiempo de la estructura. El nombre del día, el nombre abreviado del día, el nombre del mes y el nombre del mes abreviado se localizan en función del identificador de configuración regional. Si el día de la semana es incorrecto, la función usa el valor correcto y no devuelve ningún error. Si alguno de los demás valores de fecha está fuera del intervalo correcto, se produce un error en la función con el código ERROR_INVALID_PARAMETER. La función no devuelve ningún error para una cadena de formato incorrecto, pero simplemente forma la mejor cadena de fecha posible.

Si la aplicación requiere el formato de fecha para un calendario determinado, debe usar GetCalendarInfo o GetCalendarInfoEx, pasando el identificador de calendario adecuado. Para devolver todos los formatos de fecha de un calendario determinado, la aplicación puede usar EnumCalendarInfoEx, EnumCalendarInfoEx, EnumDateFormatsEx o EnumDateFormatsEx.

Especificar un calendario alternativo

La aplicación puede llamar a GetDateFormat o GetDateFormatEx con la marca DATE_USE_ALT_CALENDAR para usar el formato predeterminado para el calendario alternativo especificado. Si no hay ningún formato predeterminado para el calendario alternativo, la función usa las invalidaciones del usuario.

Para obtener el formato de fecha de un calendario alternativo, la aplicación puede usar GetLocaleInfo o GetLocaleInfoEx con la constante LOCALE_IOPTIONALCALENDAR .

Especificar tipo de fecha

Si la aplicación quiere usar el formato de fecha corta, especifica DATE_SHORTDATE en la llamada a GetDateFormat o GetDateFormatEx. Se puede obtener un formato de fecha larga especificando DATE_LONGDATE en la llamada de función. Si no se especifica ninguna marca y lpFormat se establece en NULL, la función usa DATE_SHORTDATE como valor predeterminado.

Para obtener el formato de fecha corta y larga para el calendario de configuración regional predeterminado, la aplicación debe usar la función GetLocaleInfo o GetLocaleInfoEx con la LOCALE_SSHORTDATE o LOCALE_SLONGDATE constante.

Especificar la imagen de formato de fecha

La aplicación puede especificar una imagen de formato de fecha que GetDateFormat o GetDateFormatEx usa para formar la cadena de fecha. Si se requiere el formato de fecha para la configuración regional especificada, la aplicación puede llamar a la función con lpFormat establecido en NULL. Si el parámetro no está establecido en NULL, la función usa la configuración regional solo para la información no especificada en la cadena de imagen de formato, por ejemplo, los nombres de día y mes para la configuración regional.

La aplicación puede incluir cualquier texto que debe permanecer en su forma exacta entre comillas simples. También se puede usar una comilla simple como carácter de escape para permitir que la propia marca se muestre en la cadena de fecha. Sin embargo, la secuencia de escape debe ir entre comillas simples. Por ejemplo, para mostrar la fecha como "may '93", la cadena de formato es: "MMMM ''''yy ".

Recuperar información de duración

Windows Vista y versiones posteriores: Las funciones GetDurationFormat y GetDurationFormatEx están disponibles para obtener formatos de duración para configuraciones regionales, incluidas las configuraciones regionales personalizadas. Para obtener el formato de duración predeterminado para una configuración regional, la aplicación debe usar la función GetLocaleInfo o GetLocaleInfoEx con la constante LOCALE_SDURATION .

Uso de la compatibilidad con idiomas nacionales

Hora y fecha

Uso de datos de configuración regional persistente