boost::posix_time

トップページ > 時間 >

abstract

必要なヘッダ
<boost/date_time/posix_time/posix_time.hpp>,
<boost/date_time/local_time_adjustor.hpp>, Local-UTC変換
<boost/date_time/c_local_time_adjustor.hpp>, Local-UTC変換
出来ること
時間の処理
リファレンス
en

sample

#define DATE_TIME_INLINE
#include <iostream>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/date_time/c_local_time_adjustor.hpp>
using namespace std;

int main()
{
	using namespace boost::posix_time;
	typedef boost::date_time::c_local_adjustor<ptime> local_adj;

	// 1999/07/01 03:45:12 の 100時間後は…
	ptime t = time_from_string( "1999-07-01 3:45:12" );
	t = t + hours(100);

	cout << to_simple_string(t) << endl;

	// 世界標準時から現地時間に直しつつ、時刻のみ表示
	cout << to_simple_string(
	  local_adj::utc_to_local(t).time_of_day()
	) << endl;

	return 0;
}

出力例

1999-Jul-05 07:45:12
16:45:12

etc

日時の計算を行うgregorianライブラリと二つ合わせて boost::date_time ライブラリを構成しています。

こちらは、ナノ秒単位までの細かい時間情報の処理に用いることが出来ます。 文字列表現との変換や、足し算引き算、夏時間・タイムゾーンなどを考慮した UTC ←→ LocalTime 変換などの機能を備えています。

see also

presented by k.inaba (kiki .a.t. kmonos.net) under CC0