Si je fais date +%H-%M-%S
sur la ligne de commande (Debian/Lenny), je reçois un temps convivial (pas UTC, pas DST-moins, le temps qu'une personne normale a sur leur montre-bracelet) temps imprimé.Le moyen le plus simple d'obtenir l'heure actuelle dans le fuseau horaire en utilisant boost :: date_time?
Quel est le moyen le plus simple d'obtenir la même chose avec boost::date_time
?
Si je fais ceci:
std::ostringstream msg;
boost::local_time::local_date_time t =
boost::local_time::local_sec_clock::local_time(
boost::local_time::time_zone_ptr()
);
boost::local_time::local_time_facet* lf(
new boost::local_time::local_time_facet("%H-%M-%S")
);
msg.imbue(std::locale(msg.getloc(),lf));
msg << t;
Alors msg.str()
est une heure plus tôt que le temps que je veux voir. Je ne suis pas sûr si c'est parce qu'il montre UTC ou temps de fuseau horaire local sans correction d'heure d'été (je suis au Royaume-Uni).
Quelle est la manière la plus simple de modifier ce qui précède pour obtenir le fuseau horaire local corrigé par DST? J'ai une idée que cela implique boost::date_time:: c_local_adjustor
mais ne peut pas le comprendre à partir des exemples.
Je crois qu'il s'agit d'un doublon de http://stackoverflow.com/questions/2492775/get-local-time-with-boost/2493977. Version courte: Utilisez boost: posix_time pour construire un objet temporel à partir de l'horloge système. Cela fonctionne très bien pour l'heure locale (l'environnement local 'C'). La possibilité de créer des heures pour d'autres fuseaux horaires dépend des paramètres régionaux disponibles. – Nate
Merci pour le pointeur; problème fondamental est que je n'avais pas vraiment apprécié la différence entre local_time/posix_time. – timday