Giriş
Şu satırı dahil ederiz.
Şöyle yaparız.
ptime saati UTC olarak saklar. UTC saati stream'a yazdırırken yerel saate çevirmek istersek bu metodu kullanırız.
Örnek
Şöyle yaparız. cout çıktısı time_facet ile sadece saat bilgisini yazdırılacak hale getirilir.
Şöyle yaparız.
Şu satırı dahil ederiz.
#include <boost/date_time/c_local_time_adjustor.hpp>
TanımlamaŞöyle yaparız.
using adj = boost::date_time::c_local_adjustor<ptime>;
utc_to_local metodu - ptimeptime saati UTC olarak saklar. UTC saati stream'a yazdırırken yerel saate çevirmek istersek bu metodu kullanırız.
Örnek
Şöyle yaparız. cout çıktısı time_facet ile sadece saat bilgisini yazdırılacak hale getirilir.
#include <boost/date_time/posix_time/posix_time_io.hpp>
#include <boost/date_time/c_local_time_adjustor.hpp>
namespace pt = boost::posix_time;
namespace g = boost::gregorian;
using local_adj = boost::date_time::c_local_adjustor<pt::ptime>;
int main() {
std::cout.imbue(std::locale(std::cout.getloc(), new pt::time_facet("%H:%M:%S")));
std::time_t btime_ = 1505790902; // This is epoch time read from "/proc/stat" file.
pt::ptime const timestamp = pt::from_time_t(btime_);
std::cout << timestamp << "\n";
// This local adjustor depends on the machine TZ settings
std::cout << local_adj::utc_to_local(timestamp) << " local time\n";
}
Çıktı olarak şunu alırız+ TZ=CEST
+ ./a.out
03:15:02
03:15:02 local time
+ TZ=MST
+ ./a.out
03:15:02
20:15:02 local time
ÖrnekŞöyle yaparız.
#include <boost/filesystem.hpp>
#include <boost/date_time/posix_time/posix_time_io.hpp>
#include <boost/date_time/posix_time/conversion.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/date_time/c_local_time_adjustor.hpp>
void PrintTime(boost::filesystem::path _file) {
using boost::posix_time::ptime;
using adj = boost::date_time::c_local_adjustor<ptime>;
time_t const sys_time = last_write_time(_file);
ptime const utc = boost::posix_time::from_time_t(sys_time);
ptime const local = adj::utc_to_local(utc);
std::cout << "utc: " << utc << "\n";
std::cout << "local: " << local << "\n";
{
long h{ local.time_of_day().hours() };
long m{ local.time_of_day().minutes() };
long s{ local.time_of_day().seconds() };
//...print h, m, s.
std::cout << h << ":" << m << ":" << s << '\n';
}
}
Çıktı olarak şunu alırız.utc: 2018-Feb-27 15:19:45
local: 2018-Feb-27 16:19:45
16:19:45
Hiç yorum yok:
Yorum Gönder