入力: 日付とオプションの時刻を含む文字列。異なる表現は素晴らしいですが、必要です。文字列はユーザーが指定したものであり、形式が正しくない可能性があります。例:
"2004-03-21 12:45:33"
(これがデフォルトのレイアウトだと思います)"2004/03/21 12:45:33"
(オプションのレイアウト)"23.09.2004 04:12:21"
(ドイツ語形式、オプション)"2003-02-11"
(時間がない場合があります)
必要な出力: エポック (1970/01/01 00:00:00) からの秒数またはその他の固定点。
おまけ: また、ローカル システム時間の UTC オフセットを読み取ることもできます。
入力は、問題のマシンの現地時間であると想定されます。出力は UTC である必要があります。システムは Linux のみです (Debian Lenny と Ubuntu が必要です)。
を使用しようとしましboost/date_time
たが、ドキュメンテーションに頭を悩ませることができないことを認めなければなりません。以下は、システムの現地時間から UTC への必要な変換なしで機能します。
std::string date = "2000-01-01";
boost::posix_time::ptime ptimedate = boost::posix_time::time_from_string(date);
ptimedate += boost::posix_time::hours(Hardcoded_UTC_Offset);// where to get from?
struct tm = boost::posix_time::to_tm(ptimedate);
int64_t ticks = mktime(&mTmTime);
必要な UTC オフセットを提供できると思いますboost::date_time
が、方法がわかりません。