Le moyen le plus simple d'obtenir l'heure actuelle dans le fuseau horaire en utilisant boost :: date_time?
Si je ne date +%H-%M-%S
sur la ligne de commande (Debian/Lenny), j'obtiens un user-friendly (pas de l'UTC, et non de l'heure d'été-moins, le temps qu'une personne normale a sur la montre) le temps de l'impression.
Quelle est la façon la 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;
Puis msg.str()
est une heure plus tôt que le temps que je veux voir. Je ne sais pas si c'est parce que c'est en montrant l'UTC ou de fuseau horaire local du temps sans heure d'été correction (je suis dans le royaume-UNI).
Quelle est la façon la plus simple de modifier le rendement de l'heure d'été corrigé fuseau horaire local du temps ? J'ai une idée il implique boost::date_time:: c_local_adjustor
mais ne peut pas le comprendre, à partir de ces exemples.
source d'informationauteur timday
Vous devez vous connecter pour publier un commentaire.
C'est ce que je veux:
Alors que ce n'est pas à l'aide de boost::date_time il est relativement facile avec boost::locale, ce qui est beaucoup plus adapté pour cette tâche. En tant que votre besoin est tout simplement arriver en forme le temps de la locale courante.
À mon humble avis boost::date_time doit être utilisé lorsque vous traitez avec des logiciels comme gantt/planification des calculs, ont été vous avez beaucoup de date_time de l'arithmétique. Mais tout simplement en utilisant le temps et un peu d'arithmétique sur elle, vous aurez plus vite le succès avec boost::locale.
Droit maintenant, il devrait de sortie : 15-45-48. 🙂