簡體   English   中英

MSVCs實現std :: put_time

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM