compacting strtime functions

This commit is contained in:
tastytea 2018-05-05 04:38:08 +02:00
parent 05fa4905e0
commit 4ee52fc3a0
Signed by: tastytea
GPG Key ID: 59346E0EA35C67E5
3 changed files with 22 additions and 10 deletions

View File

@ -1,6 +1,6 @@
cmake_minimum_required (VERSION 3.7)
project (mastodon-cpp
VERSION 0.11.0
VERSION 0.11.1
LANGUAGES CXX
)

View File

@ -85,22 +85,29 @@ const Easy::Link Easy::get_link() const
const string Easy::strtime_utc(const system_clock::time_point &timepoint,
const string &format)
{
constexpr std::uint_fast16_t bufsize = 1024;
std::time_t time = system_clock::to_time_t(timepoint);
std::tm *timeinfo = std::gmtime(&time);
char buffer[bufsize];
std::strftime(buffer, bufsize, format.c_str(), timeinfo);
return buffer;
return strtime(timepoint, format, true);
}
const string Easy::strtime_local(const system_clock::time_point &timepoint,
const string &format)
{
return strtime(timepoint, format, false);
}
const string Easy::strtime(const system_clock::time_point &timepoint,
const string &format, const bool &utc)
{
constexpr std::uint_fast16_t bufsize = 1024;
std::time_t time = system_clock::to_time_t(timepoint);
std::tm *timeinfo = std::localtime(&time);
std::tm *timeinfo;
if (utc)
{
timeinfo = std::gmtime(&time);
}
else
{
timeinfo = std::localtime(&time);
}
char buffer[bufsize];
std::strftime(buffer, bufsize, format.c_str(), timeinfo);

View File

@ -352,6 +352,11 @@ public:
class Results;
class Status;
class Tag;
protected:
inline static const string strtime
(const system_clock::time_point &timepoint,
const string &format, const bool &utc);
};
}