2013-06-07 6 views
9

Uczę się używać chrono C++ 11 i próbuję wydobyć czas. Other SO questions pokazują niektóre próbki kodu, np.Twierdzenie o debugowaniu "Dyrektywa w sprawie nieprawidłowego formatu" dla std :: put_time

std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now(); 
std::time_t now_c = std::chrono::system_clock::to_time_t(now - std::chrono::hours(24)); 
std::cout << std::put_time(std::localtime(&now_c), "%F %T") << '\n'; 

Gdy uruchomię to na VS2012 w debugowania, otrzymuję assert debugowania twierdząc Użyłem się „dyrektywą Nieprawidłowy format”.

To samo dzieje się, gdy używam std::strftime. Zakładam, że %F i %T nie są obsługiwane przez firmę Microsoft?

+0

Czy sprawdziłeś [co mówi MSDN] (http://msdn.microsoft.com/en-us/library/fe06s4ak (v = vs.71) .aspx)? –

+1

Właśnie to przeczytałem. Dzięki Roger. Ten format wydaje się działać "% Y-% m-% d% H:% M:% S". Trudno będzie przeczytać o C++ 11 i spróbować użyć VS2012. – doctorlove

+0

Tak - VS2012 obsługuje tylko częściowo C++ 11, więc nieporozumienia są nieuniknione :-([Patrz tutaj] (http://msdn.microsoft.com/en-us/library/vstudio/hh567368.aspx) w celu uzyskania szczegółowych informacji ma/nie robi. –

Odpowiedz

15

Jest to całkowicie spowodowane tym, że% F i% T nie są obsługiwane przez firmę Microsoft.

Powiązane problemy