(C++) GetTimestamp

February 24, 2017 · View on GitHub

 

 

 

 

 

(C++) GetTimestamp

 

GetTimestamp is a time code snippet to obtain the current time and date as a 'stamp', for example '2011_07_01_11_35_38' (at the 1st of July 2011, 11:35:38 AM).

 

 


#include <cassert> #include <functional> #include <iostream> #include <sstream> #include <string> #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/date_time/gregorian/gregorian.hpp> ///Copy_if was dropped from the standard library by accident. //From http://www.richelbilderbeek.nl/CppCopy_if.htm template<typename In, typename Out, typename Pred> Out Copy_if(In first, In last, Out res, Pred Pr) {   while (first != last)   {     if (Pr(*first))       *res++ = *first;     ++first;   }   return res; } ///Returns date in YYYY-MM-DD format //From http://www.richelbilderbeek.nl/CppGetDateIso8601.htm const std::string GetDateIso8601() {   const boost::gregorian::date today     = boost::gregorian::day_clock::local_day();   const std::string s     = boost::gregorian::to_iso_extended_string(today);   assert(s.size()==10);   assert(s[4]=='-');   assert(s[7]=='-');   return s; } ///From http://www.richelbilderbeek.nl/CppGetTime.htm const std::string GetTime() {   //Get the local time   boost::posix_time::ptime now     = boost::posix_time::second_clock::local_time();   //Convert the time to std::stringstream   std::stringstream s;   s << now.time_of_day();   //Return the std::string   return s.str(); } ///Returns the current date and time as a YYYY_MM_DD_HH_MM_SS std::string, ///for example '2011_07_01_11_35_38' ///From http://www.richelbilderbeek.nl/CppGetTimestamp.htm const std::string GetTimestamp() {   std::string s = GetDateIso8601() + '_' + GetTime();   std::replace(s.begin(),s.end(),':','_');   std::replace(s.begin(),s.end(),'-','_');   return s; } int main() {   //Example output:   //2011_07_01_11_37_27   std::cout << GetTimestamp() << '\n'; }