[英]MSVCs Implementation of std::put_time
我正在使用Microsoft Visual Studio 2012,並且正在使用std::put_time
,因此我創建了以下示例:
int main()
{
std::time_t t = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
std::locale::global( std::locale("en-GB") );
std::cout << std::put_time( std::localtime( &t ), "%x" ) << std::endl;
}
這會產生以下輸出:
06/25/2013
這不是我期望的en-GB
語言環境的日期格式。 我也嘗試過:
std::cout.imbue( std::locale("en-GB") );
但同樣,輸出相同。 這是我應該為這個語言環境得到什么輸出,還是我在某個地方犯了錯誤?
按預期工作。 std::put_time
於流的語言環境,而不是全局語言環境。 在輸入main
之前,創建cout
,並使用當前的全局區域設置。 對全局區域設置的后續更改不會影響它。 你需要明確地imbue()
它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.