C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C++获取系统时间

C++获取系统时间的三种方法

作者:Allen Roson

在 C++ 编程中,获取系统时间是一项常见任务,无论是记录日志、计算程序运行时间,还是实现计时功能,都需要获取当前的系统时间,本文将介绍几种在 C++ 中获取系统时间的方法,并提供相应的代码示例,需要的朋友可以参考下

前言

在 C++ 编程中,获取系统时间是一项常见任务。无论是记录日志、计算程序运行时间,还是实现计时功能,都需要获取当前的系统时间。本文将介绍几种在 C++ 中获取系统时间的方法,并提供相应的代码示例。

1. 使用 C 标准库函数

C++ 兼容 C 标准库,因此可以使用 C 标准库中的 time.h 头文件来获取系统时间。

1.1 获取当前时间戳

#include <iostream>
#include <ctime>
 
int main() {
    // 获取当前时间戳
    time_t now = time(nullptr);
 
    // 将时间戳转换为本地时间
    tm* localTime = localtime(&now);
 
    // 输出当前时间
    std::cout << "当前时间: " << asctime(localTime);
 
    return 0;
}

代码解释:

1.2 获取特定时间格式

#include <iostream>
#include <ctime>
 
int main() {
    // 获取当前时间戳
    time_t now = time(nullptr);
 
    // 将时间戳转换为本地时间
    tm* localTime = localtime(&now);
 
    // 格式化输出时间
    char buffer[80];
    strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", localTime);
 
    std::cout << "当前时间: " << buffer << std::endl;
 
    return 0;
}

代码解释:

2. 使用 C++11 标准库

C++11 引入了 <chrono> 库,提供了更现代、更灵活的时间处理方式。

#include <iostream>
#include <chrono>
#include <ctime>
 
int main() {
    // 获取当前时间点
    auto now = std::chrono::system_clock::now();
 
    // 将时间点转换为时间戳
    std::time_t now_c = std::chrono::system_clock::to_time_t(now);
 
    // 将时间戳转换为本地时间
    tm* localTime = std::localtime(&now_c);
 
    // 输出当前时间
    std::cout << "当前时间: " << std::put_time(localTime, "%Y-%m-%d %H:%M:%S") << std::endl;
 
    return 0;
}

代码解释:

2.1 计算时间差

#include <iostream>
#include <chrono>
 
int main() {
    // 获取开始时间点
    auto start = std::chrono::high_resolution_clock::now();
 
    // 模拟一些耗时操作
    std::this_thread::sleep_for(std::chrono::seconds(2));
 
    // 获取结束时间点
    auto end = std::chrono::high_resolution_clock::now();
 
    // 计算时间差
    std::chrono::duration<double> diff = end - start;
 
    // 输出时间差
    std::cout << "耗时: " << diff.count() << " 秒" << std::endl;
 
    return 0;
}

代码解释:

3. 使用 Boost 库

Boost 是一个功能强大的 C++ 库集合,提供了许多高级功能,包括时间处理。

#include <iostream>
#include <boost/date_time/posix_time/posix_time.hpp>
 
int main() {
    // 获取当前时间
    boost::posix_time::ptime now = boost::posix_time::second_clock::local_time();
 
    // 输出当前时间
    std::cout << "当前时间: " << now << std::endl;
 
    return 0;
}

代码解释:

总结

本文介绍了三种在 C++ 中获取系统时间的方法:

到此这篇关于C++获取系统时间的三种方法的文章就介绍到这了,更多相关C++获取系统时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文