Rumah >pembangunan bahagian belakang >C++ >Bagaimana Menghuraikan Rentetan Tarikh kepada Nilai Temporal C 11?

Bagaimana Menghuraikan Rentetan Tarikh kepada Nilai Temporal C 11?

Linda Hamilton
Linda Hamiltonasal
2024-11-29 17:12:15113semak imbas

How to Parse Date Strings into C  11 Temporal Values?

Menghuraikan Rentetan Tarikh ke dalam Nilai Temporal C 11

Menghuraikan Rentetan Tarikh

Diberi rentetan tarikh sejarah dalam format "Khamis 9 Jan 12:35 :34 2014", matlamatnya adalah untuk menghuraikannya menjadi C yang sesuai perwakilan.

C 11 std::chrono Approach

Untuk ruang nama C 11 std::chrono, gabungan fungsi std::strptime dan std::chrono::system_clock boleh digunakan.

std::tm tm = {};
std::stringstream ss("Jan 9 2014 12:35:34");
ss >> std::get_time(&tm, "%b %d %Y %H:%M:%S");
auto tp = std::chrono::system_clock::from_time_t(std::mktime(&tm));

Perhatikan bahawa std::get_time tidak dilaksanakan dalam GCC sebelum versi 5.

Pilihan Alternatif

Pendekatan alternatif ialah menggunakan fungsi strptime:

std::tm tm = {};
strptime("Thu Jan 9 2014 12:35:34", "%a %b %d %Y %H:%M:%S", &tm);
auto tp = std::chrono::system_clock::from_time_t(std::mktime(&tm));

Pengiraan Tempoh

Setelah rentetan tarikh dihuraikan menjadi nilai temporal, perbezaan antara masa semasa dan masa yang dihuraikan boleh dikira menggunakan std::chrono::duration. Tempoh ini memberikan akses kepada bilangan saat, minit, jam dan hari berlalu.

Atas ialah kandungan terperinci Bagaimana Menghuraikan Rentetan Tarikh kepada Nilai Temporal C 11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn