Giriş
Şu satırı dahil ederiz.
std::get_time C++11 ile gelen yeni bir metod. std::get_time yerine hep strptime() metodunu kullanıyorduk. Ancak bu metod Windows'ta mevcut değildi, dolayısıyla kod portable olmuyordu.
%d - day
/%m - month
/%Y - year
%H- hour
%M - minute
%S - second
Gün - Ay - Yıl - Saat - Dakika - Saniye
Şöyle yaparız.
Şöyle yaparız.
Örnek
Şöyle yaparız. Herhangi bir doğrulama kontrolü yapılmaz.
Şöyle yaparız.
Elimizde UTC bir zaman olsun. Şöyle yaparız.
Şu satırı dahil ederiz.
#include <iomanip>
Broken time yani std::tm yapısını stream'den okumak için kullanılır. Yani bu işlem sonunda tm değişkeni doldurulur. Bu sınıfın tam tersi işlemini std::put_time ile yaparız.%d - day
/%m - month
/%Y - year
%H- hour
%M - minute
%S - second
Gün - Ay - Yıl - Saat - Dakika - Saniye
Şöyle yaparız.
struct tm t = {};
std::string dateTimeFormat{"%d/%m/%Y %H:%M:%S"};
std::istringstream ss("22/12/2016 01:12:10");
ss >> std::get_time( &t, dateTimeFormat.c_str() );
Yıl - Ay- GünŞöyle yaparız.
std::tm t = {};
std::istringstream ss ("2015-11-27");
if (ss >> std::get_time (&t, "%Y-%m-%d")) {...}
Yıl - Ay - Gün - Saat - Dakika - SaniyeÖrnek
Şöyle yaparız. Herhangi bir doğrulama kontrolü yapılmaz.
std::string str = "2016-06-31 02:00:58"; // June 31 2016 does not exist
std::istringstream ss (str);
struct tm t = {}
if (ss >> std::get_time (&t, "%Y-%m-%d %H:%M:%S")) {...}
ÖrnekŞöyle yaparız.
std::istringstream time_stream = ...; // Construct a stream from string
std::tm time; // Time structure
time_stream >> std::get_time(&time, "%Y-%m-%d %H:%M:%S"); // Fill time struct
Yıl - Ay - Gün - T - Saat - Dakika - SaniyeElimizde UTC bir zaman olsun. Şöyle yaparız.
std::tm t = {};
std::istringstream ss ("2010-11-04T23:23:01Z");
if (ss >> std::get_time (&t, "%Y-%m-%dT%H:%M:%S")) {...}
Saat - Dakika - Saniye
Şöyle yaparız.
Chrono ile gelen from_time_t() metodunu kullanırız. Şöyle yaparız.Şöyle yaparız.
std::tm t{};
std::istringstream ss("01:02:03");
ss.imbue(std::locale("de_DE"));
ss >> std::get_time(&t, "%H:%M:%S");
std::cout << ss.fail() << std::endl;
std::cout << std::put_time(&t, "%c") << '\n';
Çıktı olarak şunu alırız.1
Sun Jan 0 00:00:00 1900
tm yapısından chrono'ya geçiş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));
Hiç yorum yok:
Yorum Gönder