时间操作

1, 时间戳转换为字符串

#define _CRT_SECURE_NO_WARNINGS  // localtime()需要这个宏。
#include <iostream>
#include <chrono>
#include <iomanip>   // put_time()函数需要包含的头文件。
#include <sstream>
using namespace std;

int main()
{
    // 1)静态成员函数chrono::system_clock::now()用于获取系统时间。(C++时间)
    auto now = chrono::system_clock::now();

    // 2)静态成员函数chrono::system_clock::to_time_t()把系统时间转换为time_t。(UTC时间)
    auto t_now = chrono::system_clock::to_time_t(now);

    // t_now = t_now + 24*60*60;   // 把当前时间加1天。
    // t_now = t_now + -1*60*60;   // 把当前时间减1小时。
    // t_now = t_now + 120;           // 把当前时间加120秒。

    // 3)std::localtime()函数把time_t转换成本地时间。(北京时)
    // localtime()不是线程安全的,VS用localtime_s()代替,Linux用localtime_r()代替。
    auto tm_now = std::localtime(&t_now);

    // 4)格式化输出tm结构体中的成员。
    std::cout << std::put_time(tm_now, "%Y-%m-%d %H:%M:%S") << std::endl;
    std::cout << std::put_time(tm_now, "%Y-%m-%d") << std::endl;
    std::cout << std::put_time(tm_now, "%H:%M:%S") << std::endl;
    std::cout << std::put_time(tm_now, "%Y%m%d%H%M%S") << std::endl;

    stringstream ss;   // 创建stringstream对象ss,需要包含<sstream>头文件。
    ss << std::put_time(tm_now, "%Y-%m-%d %H:%M:%S");    // 把时间输出到对象ss中。
    string timestr = ss.str();     // 把ss转换成string的对象。
    cout << timestr << endl;
}

2, 计时器

#include <iostream>
#include <chrono>
using namespace std;

int main()
{
    // 静态成员函数chrono::steady_clock::now()获取开始的时间点。
    auto start = chrono::steady_clock::now();

    // 执行一些代码,让它消耗一些时间。
    cout << "计时开始 ...... \n";
    for (int ii = 0; ii < 1000000; ii++) {
        // cout << "我是一只傻傻鸟。\n";
    }
    cout << "计时完成 ...... \n";

    // 静态成员函数chrono::steady_clock::now()获取结束的时间点。
    auto end = chrono::steady_clock::now();

    // 计算消耗的时间,单位是纳秒。
    auto dt = end - start;
    cout << "耗时: " << dt.count() << "纳秒("<<(double)dt.count()/(1000*1000*1000)<<"秒)";
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • JS中的数据类型在JS中一共有六种数据类型* String 字符串* Number 数值* Boolean ...
    ARGM10阅读 421评论 0 0
  • 一、基础信息 1.1 简介 分布式的大数据计算引擎。支持 无界数据流 和 无限数据流 进行有状态计算。 对于fli...
    每天积累多一点阅读 139评论 0 0
  • 我们都知道,在 Python 中有各种数据类型,例如整数、浮点数、字符串等。同时在开发脚本或各种算法当中,我们应该...
    萝卜大杂烩阅读 307评论 0 0
  • Go内置的time包提供了时间显示和测量的函数 时间可分为时间点和时间段,为此Go提供了两种基础数据类型time....
    JunChow520阅读 302评论 0 0