std::time_t
からフォーマットされた(MySQL DATETIMEと互換性がある)std::wstring
を作成する方法をお探しです。私は、現時点ではやっていることは、このように建設にstd::wstring
にそれを変換し、その後、std::stringstream
からstd::put_time
とstd::string
を作成することです:日付を含むstd :: wstringを作成する
std::wstring foo(myStdString.begin(), myStdString.end())
しかし、私は、これは非常にエレガントではない感じ。そこにはこれを行うための確立された方法がありますか?たぶんワイド文字を使用してフォームで取得するいくつかの方法?
回答(下記参照)
私はそれがstd::string
に似た働き、適切なフォーマットでstd::put_time
のフォーマット文字列を指定するのを忘れていました。
これは私の結果のコードです:
auto time_last_write = boost::filesystem::last_write_time(path);
std::wostringstream wstream;
wstream << std::put_time(std::gmtime(&time_last_write), L"%Y-%M-%d %H:%M:%S");
'std :: wstring'を直接取得するために' std :: wostringstream'を使用してみませんか? –
std :: put_timeはそれで動作しないようです。 – DenverCoder21
'std :: put_time(...)'のように、文字の種類を特に指定する必要があるかもしれません。あるいは、標準ライブラリの実装上のバグかもしれません。どのコンパイラを使用していますか?どのバージョン? –