Implementation of date and time functions.
Definition in file date_time.cpp.
#include "genesis/utils/tools/date_time.hpp"#include "genesis/utils/text/string.hpp"#include "genesis/utils/core/info.hpp"#include <array>#include <cerrno>#include <cstdio>#include <cstdlib>#include <ctime>#include <iomanip>#include <iostream>#include <locale>#include <mutex>#include <sstream>#include <stdexcept>Go to the source code of this file.
Namespaces | |
| genesis | |
| Container namespace for all symbols of genesis in order to keep them separate when used as a library. | |
| genesis::utils | |
Functions | |
| std::tm | convert_to_tm (std::string const &str) |
Convert a std::string to a std::tm date/time object, if possible. Throw otherwise. More... | |
| std::tm | convert_to_tm (std::string const &str, std::string const &format) |
Convert a std::string to a std::tm date/time object, if possible. Throw otherwise. More... | |
| std::tm | convert_to_tm (std::string const &str, std::string const &format, std::string const &locale) |
Convert a std::string to a std::tm date/time object, if possible. Throw otherwise. More... | |
| bool | convert_to_tm_ (std::string const &str, std::string const &format, std::string const &locale, std::tm &t) |
| Local helper function that does the heavy load of time conversion. More... | |
| std::string | current_date () |
| Returns the current date as a string in the format "2014-12-31". More... | |
| std::string | current_time () |
| Returns the current time as a string in the format "13:37:42". More... | |
| bool | is_convertible_to_tm (std::string const &str) |
Return whether a std::string is convertible to a std::tm date/time object, that is, whether it contains a date/time in a recognizable format. More... | |
| bool | is_convertible_to_tm (std::string const &str, std::string const &format) |
Return whether a std::string is convertible to a std::tm date/time object, that is, whether it contains a date/time in a recognizable format. More... | |
| bool | is_convertible_to_tm (std::string const &str, std::string const &format, std::string const &locale) |
Return whether a std::string is convertible to a std::tm date/time object, that is, whether it contains a date/time in a recognizable format. More... | |
| std::tm | time_to_tm (std::time_t const &time, bool use_local_time=false) |
Convert std::time_t object to a std::tm object. More... | |
| std::vector< std::tm > | time_to_tm (std::vector< std::time_t > const ×, bool use_local_time=false) |
Convert a std::vector of std::time_t objects to a std::vector of std::tm objects. More... | |
| std::string | tm_date_to_string (std::tm const &time) |
Print the given std::tm object as a std::string containing only the date, using the ISO 8601 extended format. More... | |
| std::string | tm_time_to_string (std::tm const &time) |
Print the given std::tm object as a std::string containing only the time, using the ISO 8601 extended format. More... | |
| std::string | tm_to_string (std::tm const &time) |
Print the given std::tm object as a std::string, using the ISO 8601 extended format. More... | |
| std::string | tm_to_string (std::tm const &time, std::string const &format) |
Print the given std::tm object as a std::string, using the format. More... | |
| std::string | tm_to_string (std::tm const &time, std::string const &format, std::string const &locale) |
Print the given std::tm object as a std::string, using the format and locale. More... | |
| std::time_t | tm_to_time (std::tm time, bool use_local_time=false) |
Convert std::tm object to a std::time_t object. More... | |
| std::vector< std::time_t > | tm_to_time (std::vector< std::tm > const ×, bool use_local_time=false) |
Convert a std::vector of std::tm objects to a std::vector of std::time_t objects. More... | |
Variables | |
| static const std::array< std::string, 9 > | formats_ |
| static const std::array< std::string, 3 > | locales_ = {{ "C", "en_US.UTF-8", "" }} |
| static std::mutex | tm_mutex_ |
| The std::localtime and std::gmtime functions are not thread safe, due to their shared internal state. Make sure that we can use them from multiple threads. More... | |