Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Menghuraikan Rentetan Tarikh dan Melakukan Pengiraan Masa Menggunakan C 11's std::chrono?
Menghuraikan Rentetan Tarikh dengan std C 11::chrono
Apabila berurusan dengan rentetan tarikh sejarah, selalunya perlu menghuraikannya ke dalam tarikh C perwakilan untuk pelbagai pengiraan. Ruang nama std::chrono C 11 menyediakan alatan berkuasa untuk pengendalian masa.
Menghuraikan Rentetan Tarikh
Untuk menghuraikan rentetan tarikh format "Kha 9 12 Jan: 35:34 2014," kita boleh memanfaatkan std::stringstream dan std::get_time functions:
std::stringstream ss("Jan 9 2014 12:35:34"); std::tm tm = {}; ss >> std::get_time(&tm, "%b %d %Y %H:%M:%S");
Ini menghuraikan rentetan menjadi std::tm struct, yang mengandungi komponen masa individu.
Menukar kepada std::chrono::time_point
Untuk mendapatkan std::chrono::time_point yang mewakili tarikh yang dihuraikan, kami menggunakan std::chrono::system_clock::from_time_t:
auto tp = std::chrono::system_clock::from_time_t(std::mktime(&tm));
Mengira Masa Berlalu
Dengan std::chrono::time_point, kita boleh mengira masa berlalu dengan mudah masa dari sejarah yang ditentukan tarikh:
auto now = std::chrono::system_clock::now(); auto duration = now - tp;
Komponen Masa Mengakses
std::chrono::duration menyediakan akses kepada komponen masa individu:
Sokongan C 11
GCC sebelum versi 5 tidak tidak melaksanakan std::get_time. Walau bagaimanapun, alternatif menggunakan strptime juga tersedia:
std::tm tm = {}; strptime("Thu Jan 9 2014 12:35:34", "%a %b %d %Y %H:%M:%S", &tm);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Rentetan Tarikh dan Melakukan Pengiraan Masa Menggunakan C 11's std::chrono?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!