Próbuję parsować ciąg daty i czasu i umieścić wynik w strukturze std :: tm. Poniżej znajduje się kod,jest to błąd w std :: get_time?
#include <iomanip>
#include <ctime>
#include <sstream>
#include <string>
std::stringstream ss;
struct std::tm when;
ss.str("8/14/2015 3:04:23 PM");
ss >> std::get_time(&when, "%m/%d/%Y %r");
Po uruchomieniu tego kodu spowoduje when.tm_hour jest 27. Jest to błąd, czy zrobiłem coś złego?
Używam Visual Studio 2013 na Windows 7.
Dzięki.
dziwne, nie mogę się, że do pracy w g ++ w ogóle i Ideone się niepowodzeniem do analizowania podstawowe daty i godziny. Ciekawi mnie, co tu się dzieje. – templatetypedef
Clang/libC++ mówi, że 15. GCC/libstdC++ nie parsuje. To jest fajne. –
Spróbuj wczytać inne ustawienia narodowe przed 'get_time'. tj. 'ss.imbue (std :: locale (" en_US "));' Nie jestem pewien, które locale obsługuje system Windows lub czy oczekuje on 'en-US' vs.' en_US'. Być może będziesz musiał się pobawić, aby je znaleźć. –