73 lines
2.0 KiB
C
73 lines
2.0 KiB
C
|
|
#ifndef TimeUtil_H_
|
|||
|
|
#define TimeUtil_H_
|
|||
|
|
|
|||
|
|
#include <mutex>
|
|||
|
|
#include <sstream>
|
|||
|
|
#include <time.h>
|
|||
|
|
#include <sys/time.h>
|
|||
|
|
#include <string>
|
|||
|
|
#include <vector>
|
|||
|
|
#include <algorithm>
|
|||
|
|
#include <set>
|
|||
|
|
#include <map>
|
|||
|
|
#include <memory>
|
|||
|
|
|
|||
|
|
namespace ai_matrix
|
|||
|
|
{
|
|||
|
|
class TimeUtil final
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
static TimeUtil *getins();
|
|||
|
|
|
|||
|
|
//获取时间戳
|
|||
|
|
std::string get_timestamp_file();
|
|||
|
|
std::string getDateTime_usec();
|
|||
|
|
//获取日期
|
|||
|
|
// std::string get_date();
|
|||
|
|
//获取北京当前日期
|
|||
|
|
std::string getDate();
|
|||
|
|
//获取北京当前时间
|
|||
|
|
std::string getTime();
|
|||
|
|
// 获取当前 日期 时间
|
|||
|
|
std::string getDateTime();
|
|||
|
|
//获取用于文件名的时间
|
|||
|
|
std::string getTime_file();
|
|||
|
|
//获取当前时间距1970年的毫秒数
|
|||
|
|
uint64_t getCurrentTimeMillis(bool usec = false);
|
|||
|
|
//获取指定时间距1970年的毫秒数 (入参格式:YYYY-MM-DD hh-mm-ss)
|
|||
|
|
uint64_t getParamTimeMilliSeconds(std::string &strDateTime);
|
|||
|
|
//获取指定毫秒数的对应的日期时间
|
|||
|
|
std::string getDateTimeByMilliSeconds(uint64_t i64MilliSeconds);
|
|||
|
|
//时间戳转化为时间 毫秒级
|
|||
|
|
std::string Stamp2Time(long long timestamp, bool has_msec = false);
|
|||
|
|
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
TimeUtil() = default;
|
|||
|
|
TimeUtil(const TimeUtil &) = delete;
|
|||
|
|
TimeUtil(TimeUtil &&) = delete;
|
|||
|
|
TimeUtil &operator=(const TimeUtil &) = delete;
|
|||
|
|
TimeUtil &operator=(TimeUtil &&) = delete;
|
|||
|
|
~TimeUtil() = default;
|
|||
|
|
|
|||
|
|
//定义一个嵌套类,负责释放内存,操作系统自动完成,不用担心内存泄露
|
|||
|
|
class GarbageCollector
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
~GarbageCollector()
|
|||
|
|
{
|
|||
|
|
if (TimeUtil::ins)
|
|||
|
|
{
|
|||
|
|
delete TimeUtil::ins;
|
|||
|
|
TimeUtil::ins = nullptr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
static GarbageCollector gc;
|
|||
|
|
static TimeUtil *ins;
|
|||
|
|
static std::mutex mx; //锁,保证线程安全
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif
|