2017-11-29 9 views

答えて

2

これはHoward Hinnant's free, open-source, cross-platform, C++11/14 timezone libraryでワンライナーです:

#include "date/tz.h" 
#include <iostream> 

int 
main() 
{ 
    std::cout << date::make_zoned("Europe/Rome", std::chrono::system_clock::now()) << '\n'; 
} 

私にとってこれだけの出力:

2017-11-29 16:24:32.710766 CET 
+0

私は余分なライブラリを避けることを望んでいましたが、これは他のものよりずっと簡単です。おそらく、私はこの図書館に行くでしょう。 – gliatsos

+0

役立つなら、このライブラリは将来のC++標準のために提案されています。それはできないかもしれませんが、現在のところ、オッズは60/40です。 「」(最高2020)に表示されるまで数年かかるでしょう。しかし、私はそれに取り組んでいます... –

+0

私は私のCMakeプロジェクトで使用することができますこれは単一のヘッダーファイルですか? – gliatsos

1
この

チェック:https://theboostcpplibraries.com/boost.datetime-location-dependent-times

#include <boost/date_time/local_time/local_time.hpp> 
#include <iostream> 

using namespace boost::local_time; 
using namespace boost::posix_time; 
using namespace boost::gregorian; 

int main() 
{ 
    time_zone_ptr tz{new posix_time_zone{"CET+1"}}; 
    ptime pt{date{2014, 5, 12}, time_duration{12, 0, 0}}; 
    local_date_time dt{pt, tz}; 
    std::cout << dt.utc_time() << '\n'; 
    std::cout << dt << '\n'; 
    std::cout << dt.local_time() << '\n'; 
    std::cout << dt.zone_name() << '\n'; 
} 

OUTPUT:

2014-May-12 12:00:00 
2014-May-12 13:00:00 CET 
2014-May-12 13:00:00 
CET 
関連する問題