私は日付の文字列を持っています。私は、関数形式の日付を渡したくない例えば任意の数値形式でそれを解析することができますスタンダールライブラリから関数(例えばタイムスタンプまたはユリウス日)日付である文字列を解析するにはどうすればよいですか?
std::string str("01/01/2017");//Local format date
UINT64 timestamp = function(str);
があります。私はローカルフォーマットで表現された文字列だけを知りたい。
私は日付の文字列を持っています。私は、関数形式の日付を渡したくない例えば任意の数値形式でそれを解析することができますスタンダールライブラリから関数(例えばタイムスタンプまたはユリウス日)日付である文字列を解析するにはどうすればよいですか?
std::string str("01/01/2017");//Local format date
UINT64 timestamp = function(str);
があります。私はローカルフォーマットで表現された文字列だけを知りたい。
ローカル日付形式を使用する場合は、std::get_time
(C++ 11以降)またはstrftime
のC関数"x"
をフォーマットとして試してみてください。
| x |ロケールの標準日付表現を解析します。すべて| - あなたがしたい場合
localtime
またはgmtime
のいずれかを使用してタイムスタンプに変換することができますcppreference.com
リターンカレンダー時間struct tm
両方。
従来のCロケールではなく、OSの地域設定を使用できるようにするには、アプリケーションのCおよびC++ロケールを設定する必要があります。 locale
およびstd::locale
を参照してください。そして、両者を同期させて、悪い驚きを得ないように両方を設定するとよいでしょう。
setlocale(LC_ALL, "");
std::locale::global(std::locale(setlocale(LC_ALL, NULL)));
opはフォーマットを渡したくありません –
はい、私はフォーマットを使いたくありません。私は '_variant_t'のように使いたい。しかし、私はクロスプラットフォームのソリューションが必要です – Rikitikitavi
ロケールには時間的な面があります。フォーマットを取得する方法を調べる必要があります –
の可能性のある重複した[文字列から日付/時刻を解析する方法?](https://stackoverflow.com/questions/3786201/how-to-parse-date-time-from-string) – Melebius
_「関数内でフォーマット日付を渡したくないのです」_関数は、フォーマットがMM/DD/YYYYかDD/MM/YYYYかどうかを_guess_する必要がありますか?私は間違いなくそれに頼っていないだろう。 – Melebius
'_variant_t'はそれを行います – Rikitikitavi