Fix inconsistent RFC1123 date format in different system locales (#352)

This commit is contained in:
JinmingHu 2020-07-28 09:49:42 +08:00 committed by GitHub
parent ef0c530ee0
commit b380dfb76a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,6 +4,8 @@
#include "common/common_headers_request_policy.hpp"
#include <ctime>
#include <iomanip>
#include <sstream>
namespace Azure { namespace Storage {
@ -27,9 +29,10 @@ namespace Azure { namespace Storage {
#else
gmtime_r(&t, &ct);
#endif
char dateString[128];
strftime(dateString, sizeof(dateString), "%a, %d %b %Y %H:%M:%S GMT", &ct);
request.AddHeader(c_HttpHeaderXMsDate, dateString);
std::stringstream dateString;
dateString.imbue(std::locale("C"));
dateString << std::put_time(&ct, "%a, %d %b %Y %H:%M:%S GMT");
request.AddHeader(c_HttpHeaderXMsDate, dateString.str());
}
return nextHttpPolicy.Send(ctx, request);