71 lines
1.9 KiB
C++
71 lines
1.9 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);
|
||
|
||
|
||
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 |