0

現在、次のようなものを使用する必要があります

ptime t = from_time_t(last_write_time(p));
std::string Created = boost::posix_time::to_iso_extended_string(t) ;

また:

ptime t = from_time_t(last_write_time(p));
std::ostringstream formatter;
formatter.imbue(std::locale(std::cout.getloc(), new boost::posix_time::time_facet("%a, %d %b %Y %H:%M:%S GMT")));
formatter << t;
std::string Created = formatter.str();

1 つ目は高速ですが、ブラウザーがヘッダー時間形式として必要とするものと互換性がありません。2 つ目は遅すぎます。"%a, %d %b %Y %H:%M:%S GMT"だから私は疑問に思っています-ptimeをフォーマットに変換し、andを使用ostringstreamしない高速で効果的なptimeから文字列へのフォーマッタを作成する方法.str()(私の目的には遅すぎるため)?

4

1 に答える 1

1

私はいつも sprintf を使用することで炎上しますが、これには何か問題がありますか?

char buffer[...];
sprintf(buffer, "%s, %d %s %04d %02d:%02d:%02d GMT", t ...);
std::string Create(buffer);

ptime 型の詳細がわからないので、バッファを安全にするためにどのくらいの大きさにする必要があるか、または sprintf の引数に何を入れるかはわかりませんが、間違いなく詳細。

strftimeあなたに興味があるかもしれないC関数もあります、 http://www.cplusplus.com/reference/clibrary/ctime/strftime/

于 2011-08-22T05:51:22.080 に答える