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_adjustormais ne peut pas le comprendre, à partir de ces exemples.

source d'informationauteur timday