2016-11-10 75 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

相关问题