Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Estructura
Proporciona una interfaz de bajo nivel a información de zona horaria sobre el resultado de convertir un local_time en un sys_time.
Sintaxis
struct local_info;
Miembros
| Función | Descripción |
|---|---|
result |
Código que describe el resultado de la conversión. |
first, second |
Resultado de la conversión. |
Constantes de miembro
| NOMBRE | valor | Descripción |
|---|---|---|
unique |
0 | El resultado de la conversión es único. |
nonexistent |
1 | No hay ningún elemento sys_time correspondiente para convertir en local_time. |
ambiguous |
2 | El resultado de la conversión es ambiguo. |
No miembros
| Función | Descripción |
|---|---|
operator<< |
Genera un local_info a una secuencia. |
result
El resultado de la conversión de local_time en sys_time.
int result;
Valor devuelto
El resultado puede tener uno de los siguientes valores:
unique:local_timese convirtió correctamente ensys_time.nonexistent: no hay una asignación delocal_timeasys_time.ambiguous: ellocal_timeacaba durante una transición entre el horario de verano y la hora estándar, por lo que se puede convertir en dos valoressys_time.
Comentarios
Para obtener información sobre cómo first y second se establecen en función de result, vea la sección siguiente sobre first, second.
first, second
Proporciona el resultado de la conversión de local_time en sys_time.
sys_seconds begin;
sys_seconds end;
Valor devuelto
first y second se establecen en result en función de lo siguiente:
result |
first |
second |
|---|---|---|
unique |
Contiene el valor de local_time convertido en sys_time |
inicializado con cero |
nonexistent |
Un sys_info que termina justo antes de local_time |
Un sys_info que empieza justo después de local_time. |
ambiguous |
Un sys_info que termina justo después de local_time |
Un sys_info que empieza justo antes de local_time. |
Código de resultado ambiguous
Durante la transición del horario de verano a la hora estándar en el otoño, los relojes básicamente obtienen una hora adicional. Esto puede resultar confuso porque la transición al tiempo estándar significa perder una hora. Al retroceder una hora, la hora anterior a la transición se repetirá después de que el reloj se ajuste para la hora estándar. Considere el cambio a la hora estándar en Nueva York, que ocurre el primer domingo de noviembre a las 2:00. En primer lugar, pasa la 1:00. A las 2:00, el reloj pasa a la hora estándar, por lo que ahora es la 1:00 de nuevo. Esto significa que el tiempo comprendido entre la 1:00 y las 2:00 se "repetirá", agregando eficazmente una hora. Vea ambiguous_local_time para obtener un ejemplo.
Si un local_time especifica una hora durante esta hora "adicional", no está claro cómo convertirla. ¿Debe tratarse el tiempo convertido como la "primera" vez que se produce esa hora o la "segunda"? Si no se especifica la enumeración choose para indicar cuál debe ser, debe esperarse que result se establezca como ambiguous y first y second reflejarán las dos opciones para la hora a la que la local_time se podría convertir.
Código de resultado nonexistent
Durante la transición del horario estándar al horario de verano en la primavera, los relojes pierden esencialmente una hora. Esto puede resultar confuso porque la transición al horario de verano significa agregar una hora. Al "saltar" una hora, la hora que sigue a la transición se pierde en esencia. Considere el cambio en el horario de verano en Nueva York, que sucede el segundo domingo de marzo a las 2:00. A las 2:00, el reloj pasa al horario de verano y ahora muestra las 3:00. Si la local_time que se convierte es 2:30, por ejemplo, esa hora se produce durante el período que se "quitó" y, por lo tanto, puede esperar que result tenga el código nonexistent. Vea nonexistent_local_time para obtener un ejemplo.
Ejemplo: obtener un local_info
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
const auto& timeZoneDatabase = get_tzdb();
const auto& currentZone = timeZoneDatabase.current_zone();
local_time<system_clock::duration> lt = currentZone->to_local(system_clock::now());
auto localInfo = currentZone->get_info(lt);
std::cout << "local_time: " << lt << "\n";
std::cout << localInfo << "\n";
return 0;
}
local_time: 2021-09-08 15:37:57.6853963
result: unique, first: (begin: 2021-03-14 10:00:00, end: 2021-11-07 09:00:00, offset: -25200s, save: 60min, abbrev: PDT)
Requisitos
Encabezado: <chrono>
Espacio de nombres: std::chrono
Opción del compilador: /std:c++latest
<chrono>
Excepción ambiguous_local_time
Enumeración choose
Clase file_clock
high_resolution_clock
Estructura local_t
Excepción non_existent
Estructura system_clock
Clase tai_clock
Clase utc_clock
Referencia de archivos de encabezado