2016-11-10 45 views
0

我已經查找了各種方法來獲取C++中的當前時間以用於控制檯應用程序項目,但是我發現的每個方法都被Visual Studio拒絕爲不正確或已棄用,即使使用#define標記也可以避免程序不使用這些函數。在Visual Studio C++ Win32控制檯應用程序中獲取當前時間的當前方法是什麼?在C++ Visual Studio 2015社區中獲取當地時間

+0

你試過了什麼? GetLocalTime應該這樣做... – willll

+2

請至少列出**我發現的每種方法都已被Visual Studio拒絕** –

+0

['std :: chrono :: system_clock :: now()'](http:// en.cppreference.com/w/cpp/chrono/system_clock/now)應該做的伎倆。 –

回答

0

您可以使用DateTime::Now

using namespace System; 
using namespace System::Globalization; 

void main() 
{ 
    DateTime localDate = DateTime::Now; 
    array<String^>^ cultureNames = { "en-US", "en-GB", "fr-FR", 
            "de-DE", "ru-RU" }; 

    for each (String^ cultureName in cultureNames) { 
     CultureInfo^ culture = gcnew CultureInfo(cultureName); 
     Console::WriteLine("{0}: {1}", cultureName, 
         localDate.ToString(culture)); 
    } 
} 

欲瞭解更多信息,看看到MSDN

+0

可能是,但不幸的是,這不是一個便攜式解決方案。 –

+3

此解決方案不是C++。它是帶有.Net框架擴展的C++。由於聲明的目標是Visual Studio,因此不一定是件壞事,但應該瞭解此解決方案的用戶。 – user4581301

+0

是的,同意。但是,如果問問題的人使用的不是便攜式解決方案,我認爲它可以幫助他。如果我們應該找到一個便攜式解決方案,我們可以定義應該看到標準庫,例如localtime()例程可以提供幫助。但我認爲VS 2015也認爲這一點也被棄用。 –

0

隨意使用這個free, open-source modern C++ library

#include "tz.h" 
#include <iostream> 

int 
main() 
{ 
    std::cout << date::make_zoned(date::current_zone(), 
            std::chrono::system_clock::now()) << '\n'; 
} 

詳情請參閱有關如何安裝部分在Windows上安裝。已知與VS-2015一起工作。

庫是線程安全的,不使用過時的功能。它也不僅僅是獲取當前的本地時間,而是a lot more things

相關問題