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 persistentes.

Windows Vista y versiones posteriores: Las funciones analizadas en este tema pueden recuperar datos de configuraciones regionales personalizadas. En concreto, se pueden usar para personalizar 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''".

Recuperación de información de hora

La aplicación puede obtener cadenas en 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 se encuentra dentro del intervalo de valores adecuado, omitiendo 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 no correcto, pero simplemente constituye 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 se especifica TIME NOTIMEMARKER en la llamada a _ GetTimeFormat o GetTimeFormatEx,la función quita los separadores anteriores y siguientes al marcador de hora. Si existe un marcador de tiempo y la marca TIME NOTIMEMARKER no está establecida en la llamada, la función localiza el marcador de tiempo en función del identificador de _ configuración regional especificado.

Quitar separadores que preceden a minutos y segundos

La aplicación puede llamar a GetTimeFormat o GetTimeFormatEx con TIME _ NOMINUTESORSECONDS o TIME NOSECONDS especificados para quitar los separadores anteriores a los elementos de minutos o _ segundos.

Usar el formato de hora de 24 horas

Si la aplicación admite el formato de hora de 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 hora 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, omitiendo 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 abreviado del mes 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 no correcto, pero simplemente constituye 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, EnumCalendarInfoExEx, EnumDateFormatsExo EnumDateFormatsExEx.

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 de 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 constante LOCALE _ SSHORTDATE o LOCALE _ SLONGDATE.

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 se establece 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 de la configuración regional.

La aplicación puede incluir cualquier texto que deba 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 incluirse entre dos comillas simples. Por ejemplo, para mostrar la fecha como "Mayo '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 los formatos de duración de las 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 persistentes