#ifndef _BASE_TIME_H_ #define _BASE_TIME_H_ #include #include #include #include "utils/TimeHelper.h" #include "utils/Log.h" namespace base { const int Hour = 60 * 60; const int Day = Hour * 24; class DateTime { public: DateTime(); DateTime(time_t timestamp); DateTime(const std::string& datetimestr); std::string ToString(); int64_t Unix() const; bool after(const DateTime& t) const { return true; } bool before(const DateTime& t) const { return true; } DateTime Add(int64_t seconds); public: int year = 0; int month = 0; int day = 0; int hour = 0; int min = 0; int second = 0; int week = 0; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */ }; /** * 开机累计毫秒数 * @return */ int64_t uptime(); /** * 获得当前日期时间 * @return */ class DateTime GetDateTimeNow(); /** * 设置系统日期时间 * @param timestamp */ void SetSystemDateTime(time_t timestamp); /** * 设置系统日期时间 * @param dt */ void SetSystemDateTime(const DateTime& dt); //设置时区 - 东八区 inline void SetTimeZone() { setenv("TZ", "CST-8", 1); } } /* namespace base */ #endif /* _FY_TIME_H_ */