From b380dfb76aee2de020f0f11ca23e97be71324f3a Mon Sep 17 00:00:00 2001 From: JinmingHu Date: Tue, 28 Jul 2020 09:49:42 +0800 Subject: [PATCH] Fix inconsistent RFC1123 date format in different system locales (#352) --- sdk/storage/src/common/common_headers_request_policy.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sdk/storage/src/common/common_headers_request_policy.cpp b/sdk/storage/src/common/common_headers_request_policy.cpp index dc3e77cef..8bb417a11 100644 --- a/sdk/storage/src/common/common_headers_request_policy.cpp +++ b/sdk/storage/src/common/common_headers_request_policy.cpp @@ -4,6 +4,8 @@ #include "common/common_headers_request_policy.hpp" #include +#include +#include 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);