#ifndef TimeUtil_H_ #define TimeUtil_H_ #include #include #include #include #include #include #include #include #include #include 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