@@ -351,11 +351,11 @@ TEST(chrono_test, system_clock_time_point) {
351351}
352352
353353TEST (chrono_test, local_time) {
354- auto t =
354+ auto time =
355355 fmt::local_time<std::chrono::seconds>(std::chrono::seconds (290088000 ));
356- EXPECT_EQ (fmt::format (" {:%Y-%m-%d %H:%M:%S}" , t ), " 1979-03-12 12:00:00" );
357- EXPECT_EQ (fmt::format (" {}" , t ), " 1979-03-12 12:00:00" );
358- EXPECT_EQ (fmt::format (" {:}" , t ), " 1979-03-12 12:00:00" );
356+ EXPECT_EQ (fmt::format (" {:%Y-%m-%d %H:%M:%S}" , time ), " 1979-03-12 12:00:00" );
357+ EXPECT_EQ (fmt::format (" {}" , time ), " 1979-03-12 12:00:00" );
358+ EXPECT_EQ (fmt::format (" {:}" , time ), " 1979-03-12 12:00:00" );
359359
360360 std::vector<std::string> specs = {
361361 " %%" , " %n" , " %t" , " %Y" , " %EY" , " %y" , " %Oy" , " %Ey" , " %C" ,
@@ -375,38 +375,30 @@ TEST(chrono_test, local_time) {
375375#endif
376376 specs.push_back (" %Y-%m-%d %H:%M:%S" );
377377
378- #if FMT_USE_LOCAL_TIME
379378# ifdef _WIN32
380379 return ; // Not supported on Windows.
381380# endif
382381
383382 for (const auto & spec : specs) {
384- auto sys_time = std::chrono::system_clock::to_time_t (
385- std::chrono::current_zone ()->to_sys (t));
386- auto tm = *std::localtime (&sys_time);
387-
383+ auto tm = fmt::gmtime (time.time_since_epoch ().count ());
388384 auto sys_output = system_strftime (spec, &tm);
389385
390386 auto fmt_spec = fmt::format (" {{:{}}}" , spec);
391- EXPECT_EQ (sys_output, fmt::format (fmt::runtime (fmt_spec), t)) ;
387+ EXPECT_EQ (sys_output, fmt::format (fmt::runtime (fmt_spec), time)) << fmt_spec ;
392388 EXPECT_EQ (sys_output, fmt::format (fmt::runtime (fmt_spec), tm));
393389 }
394390
395391 if (std::find (specs.cbegin (), specs.cend (), " %z" ) != specs.cend ()) {
396- auto sys_time = std::chrono::system_clock::to_time_t (
397- std::chrono::current_zone ()->to_sys (t));
398- auto tm = *std::localtime (&sys_time);
399-
392+ auto tm = fmt::gmtime (t.time_since_epoch ().count ());
400393 auto sys_output = system_strftime (" %z" , &tm);
401394 sys_output.insert (sys_output.end () - 2 , 1 , ' :' );
402395
403- EXPECT_EQ (sys_output, fmt::format (" {:%Ez}" , t ));
396+ EXPECT_EQ (sys_output, fmt::format (" {:%Ez}" , time ));
404397 EXPECT_EQ (sys_output, fmt::format (" {:%Ez}" , tm));
405398
406- EXPECT_EQ (sys_output, fmt::format (" {:%Oz}" , t ));
399+ EXPECT_EQ (sys_output, fmt::format (" {:%Oz}" , time ));
407400 EXPECT_EQ (sys_output, fmt::format (" {:%Oz}" , tm));
408401 }
409- #endif // FMT_USE_LOCAL_TIME
410402}
411403
412404TEST (chrono_test, daylight_savings_time_end) {
0 commit comments