struct local_info
Fournit une interface de bas niveau en informations de fuseau horaire sur le résultat de la conversion d’un local_time
en un sys_time
.
Syntaxe
struct local_info;
Membres
Fonction | Description |
---|---|
result |
Code décrivant le résultat de la conversion. |
first , second |
Résultat de la conversion. |
Constantes de membre
Nom | Valeur | Description |
---|---|---|
unique |
0 | Le résultat de la conversion est unique. |
nonexistent |
1 | Il n’y a pas de correspondance sys_time à convertir.local_time |
ambiguous |
2 | Le résultat de la conversion est ambigu. |
Non-membres
Fonction | Description |
---|---|
operator<< |
Sortie d’un local_info flux. |
result
Résultat de la conversion d’un local_time
sys_time
en .
int result;
Valeur retournée
Le résultat peut être l’une des valeurs suivantes :
unique
: le résultatlocal_time
a été converti ensys_time
.nonexistent
: Il n’y a pas de mappage entre lelocal_time
sys_time
.ambiguous
: leslocal_time
terres pendant une transition entre l’heure d’été et l’heure standard et peuvent donc être converties en deuxsys_time
valeurs.
Notes
Pour plus d’informations sur la façon first
dont et second
sont définies en fonction result
de , consultez la section suivante surfirst
, second
.
first
, second
Fournit le résultat de la conversion d’un local_time
en .sys_time
sys_seconds begin;
sys_seconds end;
Valeur retournée
first
et second
sont définis en fonction result
des éléments suivants :
result |
first |
second |
---|---|---|
unique |
Contient la valeur de local_time conversion en sys_time |
zéro initialisé |
nonexistent |
Un sys_info qui se termine juste avant le local_time |
Un sys_info qui commence juste après le local_time . |
ambiguous |
Un sys_info qui se termine juste après le local_time |
Un sys_info qui commence juste avant le local_time . |
ambiguous
code de résultat
Pendant la transition de l’heure d’été à l’heure standard à l’automne, les horloges gagnent essentiellement une heure supplémentaire. Cela peut être déroutant parce que la transition vers le temps standard signifie perdre une heure ? En revenant une heure, l’heure avant la transition sera répétée après l’ajustement de l’horloge pour l’heure standard. Considérez le changement de l’heure standard à New York, qui se produit le premier dimanche en novembre à 2h00. Tout d’abord, 1h00 va. À 2h00, l’horloge passe à l’heure standard, c’est donc à nouveau 1h00. Cela signifie que le temps entre 1h et 2h sera « répété », ajoutant effectivement une heure. Pour obtenir un exemple, consultez ambiguous_local_time
.
Si une local_time
heure spécifiée pendant cette heure « supplémentaire », il n’est pas clair comment la convertir. L’heure convertie doit-elle être traitée comme la « première » fois que cette heure se produit, ou la « seconde » ? Si l’énumération choose
n’est pas spécifiée pour indiquer ce qu’elle doit être, attendez-vous result
à être définie ambiguous
sur , et first
second
reflète les deux choix pour l’heure à laquelle la local_time
conversion peut être effectuée.
nonexistent
code de résultat
Pendant la transition entre l’heure standard et l’heure d’été au printemps, les horloges perdent essentiellement une heure. Cela peut être déroutant, car la transition vers l’heure d’été signifie-t-elle ajouter une heure ? En « ressortant vers l’avant » une heure, l’heure qui suit la transition est effectivement supprimée. Considérez le changement de l’heure d’été à New York, qui se produit le deuxième dimanche en mars à 2h. À 2 h, l’horloge passe à l’heure d’été et lit maintenant 3 h 00. Si la local_time
conversion est de 2 h 30, par exemple, cette heure est au cours de la période « supprimée » et vous pouvez donc vous attendre result
à avoir le nonexistent
code. Pour obtenir un exemple, consultez nonexistent_local_time
.
Exemple : obtenir 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)
Spécifications
En-tête : <chrono>
Espace de noms : std::chrono
Option du compilateur : /std:c++latest
<chrono>
ambiguous_local_time
exception
Enum choose
file_clock
, classe
high_resolution_clock
Struct local_t
non_existent
exception
Struct system_clock
tai_clock
, classe
utc_clock
, classe
Informations de référence sur les fichiers d’en-tête