在 C++ 中封装一个获取当前时间的 Unix 时间戳的接口,我们可以创建一个简单的类或者函数来实现。以下是一个基本的示例,展示如何封装这样一个接口:
cpp
#include <chrono>
#include <iostream>
class TimeUtils {
public:
static long long getCurrentUnixTimestamp() {
auto now = std::chrono::system_clock::now();
auto duration = now.time_since_epoch();
return std::chrono::duration_cast<std::chrono::seconds>(duration).count();
}
};
int main() {
long long unix_timestamp = TimeUtils::getCurrentUnixTimestamp();
std::cout << "Current Unix timestamp: " << unix_timestamp << std::endl;
return 0;
}
在这个示例中,我们创建了一个名为 TimeUtils 的静态类,其中包含一个静态方法 getCurrentUnixTimestamp()。这个方法使用了 C++11 引入的 头文件来获取当前时间,并将其转换为 Unix 时间戳(以秒为单位)返回。
std::chrono::system_clock::now() 获取当前时间点。
now.time_since_epoch() 返回自 Unix 时间点(1970年1月1日00:00:00 UTC)以来的时间间隔。
std::chrono::duration_caststd::chrono::seconds(duration).count() 将时间间隔转换为秒,并以长整型返回 Unix 时间戳。
在 main() 函数中,我们展示了如何使用 TimeUtils::getCurrentUnixTimestamp() 方法来获取当前时间的 Unix 时间戳,并将结果打印出来。
这样的封装使得获取当前 Unix 时间戳的操作更具有模块化和可重用性,适用于各种需要时间戳的应用程序场景。