2016-11-10 7 views
0

C++でコンソールアプリケーションプロジェクトの現在の時間を取得する方法をすべて見てきましたが、見つかったすべてのメソッドがVisual Studioで間違っているか、 #defineタグでも、プログラムが関数を非難するのを防ぐことができます。 Visual Studio C++ Win32コンソールアプリケーションで現在の時刻を取得する現在の方法は何ですか?C++で現地時間を取得するVisual Studio 2015コミュニティ

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

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

は方法の詳細については、インストールのセクションを参照してください:

+0

何を試しましたか? GetLocalTimeはそれを行う必要があります... – willll

+2

少なくともリストしてください**私が見つけたすべてのメソッドはVisual Studio **によって拒否されました** –

+0

['std :: chrono :: system_clock :: now()'](http:// en.cppreference.com/w/cpp/chrono/system_clock/now)はこのトリックを行うべきです。 –

答えて

0

あなたは使用することを気軽MSDN

+0

残念ながらポータブルソリューションではありません。 –

+3

このソリューションはC++ではありません。 .NET Framework拡張機能を持つC++です。明示されたターゲットがVisual Studioであるため、必ずしも悪いことではありませんが、このソリューションのユーザーは意識してください。 – user4581301

+0

はい、同意します。しかし、質問をした人がポータブルな解決策ではない場合、私はそれが彼を助けることができると思います。私たちがポータブルな解決策を見つけなければならないならば、localtime()ルーチンが助けることができるなど、標準ライブラリを見るべきです。しかし、私はVS 2015がこれも非難されたものとみなしていると思います。うん、ちょうど、正確に –

0

に見て、詳細については、このfree, open-source modern C++ libraryDateTime::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)); 
    } 
} 

を使用することができますこれをWindowsにインストールします。 VS-2015で動作することが知られています。

ライブラリはスレッドセーフであり、非推奨の機能は使用しません。現在の現地時間を取得するだけでなく、a lot more thingsも行います。

関連する問題