首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++ 使用 chrono 库处理日期和时间

为了方便使用,在标准库中定义了一些常用的时间间隔,比如:时、分、秒、毫秒、微秒、纳秒,它们都位于 chrono 命名空间下,定义如下: 类型 定义 纳秒:std::chrono::nanoseconds...durationRep/ 至少 64 位的有符号整数类型 /, std::nano> 微秒:std::chrono::microseconds durationRep/ 至少 55 位的有符号整数类型...::seconds durationRep/ 至少 35 位的有符号整数类型 /> 分钟:std::chrono::minutes durationRep/ 至少 29 位的有符号整数类型 /, std...在这些时钟类的内部有 time_point、duration、Rep、Period 等信息,基于这些信息来获取当前时间,以及实现 time_t 和 time_point 之间的相互转换。...函数的作用是对时间点进行转换,因为不同的时间点对象内部的时钟周期 Period,和周期次数的类型 Rep 可能也是不同的,一般情况下它们之间可以进行隐式类型转换,也可以通过该函数显示的进行转换,函数原型如下

5.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C++11时间日期库chrono的使用

    时钟与时间点 chrono中用time_point模板类表示时间点,其支持基本算术操作;不同时钟clock分别返回其对应类型的时间点。...:高精度时钟(当前系统能提供的最高精度时钟,很可能就是steady_clock),也是单调的; 需要得到绝对时点的场景使用system_clock;需要得到时间间隔,且不受系统时间修改而受影响时使用...::nano::den; //返回运行的秒数,如1.00345   } } 时间间隔duration chrono中使用duration模板类来表示时间间隔,并定义了从小时到纳秒的时间间隔。...nMillSec){ std::chrono::seconds secs(nSec); std::chrono::milliseconds mills(nMillSec); std::this_thread...::sleep_for(secs+mills); } duration_cast 使用duration_cast可以方便的在不同时间单位间进行转换,如: auto sec=seconds(123); auto

    41220

    地球时间和 C++ 时间库

    原子从某高能阶跃迁到某低能阶时,会释放频率非常稳定的电磁波,例如 铯-133 原子在基态的两个超精细能级之间跃迁时,会释放频率为 9192631770 Hz 的电磁波,即该电磁波 1 秒中有 9192631770...4. std::chrono #include chrono> std::ratio 在 chrono 库中表示秒、分、时等单位 std::nano 即 std::ratio,在 chrono 中表示纳秒单位 std::micro 即 std::ratio,在 chrono 中表示微秒单位 std::milli 即 std::ratio,在 chrono 中表示毫秒单位 模板二参默认是1,ratio 即 ratio,在 chrono 中表示1分钟 chrono::days (C++20) 相当于 duration...不同的 Clock 即不同的 epoch。 time_point::duration:指定计时的单位(period)和类型(rep),一般是 秒(ratio) 和 integer(long)。

    3.4K20

    再也不被时间束缚:C++ std::chrono时间库全面解析

    std::chrono命名空间是C++标准库的一部分,因此它具有跨平台的兼容性,并且在不同的操作系统中都能正常工作。...比如:std::chrono::durationstd::duratio>表示毫秒级别的时间段。在使用Duration时,可以进行加减、比较和表示等操作。...最后,我们计算了当前时间点和未来时间点之间的时间间隔,并输出结果。注意:在计算时间间隔时,使用了duration_cast将时间间隔转换为所需的duration类型(在这里是double类型)。...五、clock的使用详解5.1、不同类型的clock在std::chrono库中,存在三种不同类型的时钟:system_clock、steady_clock和high_resolution_clock。...注意:不同的平台可能对这些时钟的实现有所不同,最小时间单位也可能有所不同。可以使用duration_cast将时间间隔转换为所需的时间单位(例如秒、毫秒、纳秒等)。

    1.2K00

    C++并发编程 - 互斥锁(lock_guard和unqiue_lock)

    主要有以下优势: 无需考虑互斥量的初始化和销毁,在类的构造和析构函数中管理,无需使用者操心。 采用RAII对互斥量进行了不同封装,提供了更方便的上锁机制。...unique_lock提供lock与unlock,同时析构时也会释放锁。 std::unique_lock 可以在构造时传递第二个参数用于管理互斥量,且能传递不同域中互斥量所有权。..., class _Period> unique_lock(_Mutex& _Mtx, const chrono::durationRep, _Period>& _Rel_time)...unique_lock(_Mutex& _Mtx, const chrono::durationRep, _Period>& _Rel_time) 在指定时间长内尝试获取传递的mutex的锁返回。...unique_lock(mutex_type& m,std::chrono::time_pointDuration> const& absolute_time) 在给定时间点尝试获取传递的

    61320

    c++11新特性,所有知识点都在这了!

    ,override用于修饰派生类中的成员函数,标明该函数重写了基类函数,如果一个函数声明了override但父类却没有这个虚函数,编译报错,使用override关键字可以避免开发者在重写基类函数时无意产生的错误...time_point clocks duration std::chrono::duration表示一段时间,常见的单位有s、ms等,示例代码: // 拿休眠一段时间举例,这里表示休眠100ms std...: 1 template Rep, class Period = ratio > class duration; Rep表示一种数值类型,用来表示Period的数量,比如int、float...、double,Period是ratio类型,用来表示【用秒表示的时间单位】比如second,常用的durationRep, Period>已经定义好了,在std::chrono::duration下...::array:数组,在越界访问时抛出异常,建议使用std::array替代普通的数组 std::tuple:元组类型,类似pair,但比pair扩展性好 typedef std::tuple<int,

    20.8K24

    UNIX(多线程):19---Future 类型详解

    wait_for (const chrono::durationRep,Period>& rel_time) const; 而与 std::future::wait() 不同的是,wait_for...Duration>& abs_time) const; 而与 std::future::wait() 不同的是,wait_until() 可以设置一个系统绝对时间点 abs_time,如果共享状态的标志在该时间点到来之前没有被...Provider 设置为 ready,则调用 wait_until 的线程被阻塞,在 abs_time 这一时刻到来之后 wait_until() 返回,返回值如下: 返回值 描述 future_status...shared_future 可以通过某个 std::future 对象隐式转换(参见 std::shared_future 的构造函数),或者通过 std::future::share() 显示转换,无论哪种转换...wait_until(): 等待与该 std::shared_future 对象相关联的共享状态的标志变为 ready。(在某一时刻前等待,超过该时刻 wait_until 返回。)

    60020

    4.3 C++ Boost 日期时间操作库

    其中,在将Ptime转为Time_T的过程中,需要使用boost库提供的时间函数,并结合计算时间差的方法将Ptime时间对象转换为对应的Time_T值。...通过本节内容的学习,读者可掌握如何使用boost库进行Ptime与Time_T之间的相互转换,并在实际开发中运用相关技巧和方法解决时间处理问题,提升代码编程能力以及开发效率。...使用boost库中的日期格式化函数,我们可以方便地将日期对象转换为不同的字符串格式,以满足具体应用的需求。...具体而言,我们介绍了如何计算时间点之间的时间差,如何将时间持续类型转换成其他类型,以及如何计算两个时间区间之间的时间差等等。...; cout 之间类型转换 boost::chrono::seconds cast_minutes(300); boost

    45040

    4.3 C++ Boost 日期时间操作库

    其中,在将Ptime转为Time_T的过程中,需要使用boost库提供的时间函数,并结合计算时间差的方法将Ptime时间对象转换为对应的Time_T值。...通过本节内容的学习,读者可掌握如何使用boost库进行Ptime与Time_T之间的相互转换,并在实际开发中运用相关技巧和方法解决时间处理问题,提升代码编程能力以及开发效率。...使用boost库中的日期格式化函数,我们可以方便地将日期对象转换为不同的字符串格式,以满足具体应用的需求。...具体而言,我们介绍了如何计算时间点之间的时间差,如何将时间持续类型转换成其他类型,以及如何计算两个时间区间之间的时间差等等。...; cout << "1900秒加5分钟: " << m << endl; // 时间之间类型转换 boost::chrono::seconds cast_minutes(300);

    40550
    领券