国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

c++ 獲取當(dāng)前時(shí)間(精確至秒、毫秒和微妙)

這篇具有很好參考價(jià)值的文章主要介紹了c++ 獲取當(dāng)前時(shí)間(精確至秒、毫秒和微妙)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

頭文件

#include <chrono>

三個(gè)概念

Duration(時(shí)間段)

概念

表示兩個(gè)時(shí)間點(diǎn)之間的時(shí)間差。

時(shí)間單位

  • 小時(shí)(hours):std::chrono::hours

  • 分鐘(minutes):std::chrono::minutes

  • 秒(seconds):std::chrono::seconds

  • 毫秒(milliseconds):std::chrono::milliseconds

  • 微秒(microseconds):std::chrono::microseconds

  • 納秒(nanoseconds):std::chrono::nanoseconds

時(shí)間精度

  • 整數(shù)類型精度:std::chrono::duration<int, TimeUnit>
  • 長(zhǎng)整數(shù)類型精度:std::chrono::duration<long, TimeUnit>
  • 浮點(diǎn)類型精度:std::chrono::duration<float, TimeUnit>
  • 雙精度類型精度:std::chrono::duration<double, TimeUnit>

示例1

// 創(chuàng)建一個(gè)200毫秒的時(shí)間段
std::chrono::duration<int, std::milli> duration1(200); 

// 表示5秒的duration,使用長(zhǎng)整數(shù)類型精度
std::chrono::duration<long, std::seconds> duration2(5);

// 表示2.5秒的duration,使用浮點(diǎn)類型精度
duration<float, std::seconds> duration3(2.5);

// 表示1分鐘的duration,使用雙精度類型精度
duration<double, std::minutes> duration4(1);

示例2

#include <iostream>
#include <chrono>
#include <thread>

int main()
{
	    // 創(chuàng)建兩個(gè)時(shí)間點(diǎn)
    	auto start = std::chrono::steady_clock::now();
    	std::this_thread::sleep_for(std::chrono::seconds(5)); // 模擬5s耗時(shí)操作
    	auto end = std::chrono::steady_clock::now();

    	// 計(jì)算時(shí)間間隔
    	std::chrono::duration<double> duration = std::chrono::duration_cast<std::chrono::duration<double>>(end - start);

    	// 輸出時(shí)間間隔
    	std::cout << "Elapsed time: " << duration.count() << " seconds\n";
    
	    return 0;
}

執(zhí)行結(jié)果:

[root@localhost debug]# ./timeTest
Elapsed time: 5.00022 seconds
[root@localhost debug]#

Time point(時(shí)間點(diǎn))

概念

特定時(shí)鐘上的一個(gè)時(shí)間。

組成

  1. 時(shí)鐘(Clock),時(shí)鐘類型包括:

    • steady_clock(穩(wěn)定時(shí)鐘)
    • system_clock(系統(tǒng)時(shí)鐘)
    • high_resolution_clock(高分辨率時(shí)鐘)
  2. 表示時(shí)間的持續(xù)時(shí)間(Duration)

示例

#include <iostream>
#include <chrono>
#include <thread>

int main()
{
	// 使用系統(tǒng)時(shí)鐘獲取當(dāng)前時(shí)間點(diǎn)
    // std::chrono::system_clock::time_point currentTime = std::chrono::system_clock::now();
	auto currentTime = std::chrono::system_clock::now();
    std::this_thread::sleep_for(std::chrono::seconds(2));
    auto laterTime = std::chrono::system_clock::now();
 
    // std::chrono::duration<double> duration = std::chrono::duration_cast<std::chrono::duration<double>>(laterTime - currentTime);
    auto duration = std::chrono::duration_cast<std::chrono::duration<double>>(laterTime - currentTime);
    std::cout << "The duration is: " << duration.count() << std::endl;
    
    auto AfterTime = laterTime + std::chrono::hours(24);
	duration = std::chrono::duration_cast<std::chrono::duration<double>>(AfterTime - laterTime);
	std::cout << "The duration for 24H is: " << duration.count() << std::endl;
    
    return 0;
}    

執(zhí)行結(jié)果:

[root@localhost debug]# ./timeTest
The duration is: 2.00589
The duration for 24H is: 86400
[root@localhost debug]#

Clock(時(shí)鐘)

概念

提供了基準(zhǔn)和刻度。

時(shí)鐘類型

  • system_clock
    • system_clock是系統(tǒng)級(jí)別的時(shí)鐘,它表示實(shí)時(shí)時(shí)鐘,也就是指示當(dāng)前時(shí)間的時(shí)鐘。它的時(shí)間點(diǎn)是與系統(tǒng)的時(shí)鐘相關(guān)聯(lián)的,可能受到時(shí)鐘調(diào)整和時(shí)區(qū)的影響;
    • system_clock用于獲取當(dāng)前的系統(tǒng)時(shí)間,可以用來(lái)進(jìn)行日常時(shí)間計(jì)算和顯示。它通常被用作默認(rèn)的時(shí)鐘類型;
    • system_clock的最小時(shí)間單位取決于系統(tǒng),可能是秒、毫秒或微秒;
  • steady_clock
    • steady_clock是一個(gè)單調(diào)遞增的時(shí)鐘,不受任何時(shí)鐘調(diào)整或時(shí)區(qū)的影響。它提供了一個(gè)穩(wěn)定、可靠的時(shí)間基準(zhǔn),適合用于測(cè)量時(shí)間間隔和計(jì)算算法的執(zhí)行時(shí)間;
    • steady_clock的最小時(shí)間單位取決于實(shí)現(xiàn),通常是納秒或微秒級(jí)別;
  • high_resolution_clock
    • 可用于測(cè)量小時(shí)間間隔的時(shí)鐘。它通常使用最高分辨率的時(shí)鐘源來(lái)提供更高的時(shí)間精度。在大部分平臺(tái)上,high_resolution_clock是steady_clock的別名,因此也是一個(gè)單調(diào)遞增的時(shí)鐘;
    • 最小時(shí)間單位取決于實(shí)現(xiàn),通常是納秒或微秒級(jí)別;

示例1

#include <iostream>
#include <chrono>
#include <thread>

int main()
{
    // std::chrono::steady_clock::time_point steady_start = std::chrono::steady_clock::now();
    auto steady_start = std::chrono::steady_clock::now();
    std::this_thread::sleep_for(std::chrono::seconds(1));
    auto steady_end = std::chrono::steady_clock::now();

    auto duration = std::chrono::duration_cast<std::chrono::duration<double>>(steady_end - steady_start);
    std::cout << "The steady_clock duration is: " << duration.count() << std::endl;

    // std::chrono::high_resolution_clock::time_point high_resolution_start = std::chrono::high_resolution_clock::now();
    auto high_resolution_start = std::chrono::high_resolution_clock::now();
    std::this_thread::sleep_for(std::chrono::seconds(1));
    auto high_resolution_end = std::chrono::high_resolution_clock::now();

    duration = std::chrono::duration_cast<std::chrono::duration<double>>(high_resolution_end - high_resolution_start);
    std::cout << "The high_resolution_clock duration is: " << duration.count() << std::endl;
    
	return 0;
}

執(zhí)行結(jié)果:

[root@localhost debug.x64-linux-g8]# ./timeTest
The steady_clock duration is: 1.00066
The high_resolution_clock duration is: 1.00085
[root@localhost debug.x64-linux-g8]#

示例2

// 獲取當(dāng)前時(shí)間的時(shí)間戳

#include <iostream>
#include <chrono>
#include <thread>

int main()
{
    auto currentTime = std::chrono::system_clock::now();
    auto currentTime_s = std::chrono::time_point_cast<std::chrono::seconds>(currentTime);
    auto currentTime_ms = std::chrono::time_point_cast<std::chrono::milliseconds>(currentTime);
    auto currentTime_micro = std::chrono::time_point_cast<std::chrono::microseconds>(currentTime);
    auto currentTime_ns = std::chrono::time_point_cast<std::chrono::nanoseconds>(currentTime);
    auto valueS = currentTime_s.time_since_epoch().count();
    auto valueMS = currentTime_ms.time_since_epoch().count();
    auto valueMicroS = currentTime_micro.time_since_epoch().count();
    auto valueNS = currentTime_ns.time_since_epoch().count();

    std::cout << "Seconds: " << valueS << std::endl;
    std::cout << "Milliseconds: " << valueMS << std::endl;
    std::cout << "Microseconds: " << valueMicroS << std::endl;
    std::cout << "Nanoseconds: " << valueNS << std::endl;
 
    return 0;
}

執(zhí)行結(jié)果:

[root@localhost debug]# ./timeTest
Seconds: 1700544228
Milliseconds: 1700544228873
Microseconds: 1700544228873536
Nanoseconds: 1700544228873536309
[root@localhost debug]#
示例3
// 將當(dāng)前時(shí)間格式化為時(shí)間字符串
#include <iostream>
#include <chrono>
#include <iomanip>

int main()
{
	auto currentTime = std::chrono::system_clock::now();
	std::time_t t = std::chrono::system_clock::to_time_t(currentTime);
	std::cout << "CurrentTime: " << std::put_time(std::localtime(&t), "%F %T") << std::endl;

	return 0;
}

執(zhí)行結(jié)果:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-763904.html

[root@localhost debug]# ./timeTest
CurrentTime: 2023-11-20 14:50:35
[root@localhost debug]#

到了這里,關(guān)于c++ 獲取當(dāng)前時(shí)間(精確至秒、毫秒和微妙)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python time 獲取毫秒級(jí)時(shí)間戳

    1、time 獲取秒級(jí)時(shí)間戳,格式化顯示 結(jié)果: 2、datetime 獲取當(dāng)前日期時(shí)間 結(jié)果: 3、日期時(shí)間之間的轉(zhuǎn)換 3.1、字符串轉(zhuǎn) time 3.2、字符串轉(zhuǎn) time 3.3、示例

    2024年02月16日
    瀏覽(21)
  • PHP實(shí)現(xiàn)獲取毫秒時(shí)間戳的方法

    PHP獲取毫秒時(shí)間戳,利用microtime()函數(shù) php本身沒(méi)有提供返回毫秒數(shù)的函數(shù),但提供了一個(gè)microtime()函數(shù),借助此函數(shù),可以很容易定義一個(gè)返回毫秒數(shù)的函數(shù)。 php的毫秒是沒(méi)有默認(rèn)函數(shù)的,但提供了一個(gè)microtime()函數(shù),該函數(shù)返回包含兩個(gè)元素,一個(gè)是秒數(shù),一個(gè)是小數(shù)表示

    2024年02月15日
    瀏覽(27)
  • Unity中獲取時(shí)間戳、日期、時(shí)間、毫秒、秒以相互轉(zhuǎn)換、自定義格式時(shí)間

    Unity中獲取時(shí)間戳、日期、時(shí)間、毫秒、秒以相互轉(zhuǎn)換、自定義格式時(shí)間

    這里附帶一個(gè)時(shí)間戳和時(shí)間轉(zhuǎn)換的網(wǎng)址 時(shí)間戳就是從1970年1月1日0時(shí)0分0秒起到現(xiàn)在的總毫秒數(shù),為什么時(shí)1970/1/1/00:00:00,因?yàn)榈谝慌_(tái)計(jì)算機(jī)發(fā)明時(shí)間是這個(gè)時(shí)間,所以時(shí)間戳誕生了。 比如說(shuō)你要做一些時(shí)間相關(guān)的功能,那么基本都會(huì)用到時(shí)間戳。而且時(shí)間戳是精確的,比如說(shuō)

    2024年02月05日
    瀏覽(124)
  • C# 獲取當(dāng)前系統(tǒng)時(shí)間及時(shí)間格式詳解

    C# 獲取當(dāng)前系統(tǒng)時(shí)間及時(shí)間格式詳解 在 C# 編程中,獲取當(dāng)前系統(tǒng)時(shí)間是一個(gè)常見(jiàn)的操作。此外,對(duì)于時(shí)間的格式化也是開(kāi)發(fā)中經(jīng)常遇到的需求。本文將詳細(xì)介紹如何使用 C# 獲取當(dāng)前系統(tǒng)時(shí)間,并對(duì)常用的時(shí)間格式進(jìn)行解析和格式化。 獲取當(dāng)前系統(tǒng)時(shí)間 要獲取當(dāng)前系統(tǒng)時(shí)間

    2024年02月07日
    瀏覽(29)
  • vue封裝-獲取當(dāng)前時(shí)間

    在開(kāi)發(fā)時(shí),經(jīng)常遇到轉(zhuǎn)換時(shí)間戳的問(wèn)題,這里封裝了一個(gè)方法,方便使用。

    2024年02月13日
    瀏覽(24)
  • Python獲取當(dāng)前時(shí)間日期

    時(shí)間日期類型在Python中主要有兩個(gè)模塊:time模塊 和 datetime模塊 time模塊: 是基于Unix Timestamp(時(shí)間戳)實(shí)現(xiàn)的,所能表述的范圍被限定在1970-2038年之間; 時(shí)間戳: 是指格林尼治時(shí)間1970年01月01日00時(shí)00分00秒起至現(xiàn)在的總秒數(shù),結(jié)果是一個(gè)浮點(diǎn)數(shù)。 2.1 獲取當(dāng)前時(shí)間戳 示例:

    2024年02月13日
    瀏覽(28)
  • java獲取當(dāng)前系統(tǒng)時(shí)間

    java獲取當(dāng)前系統(tǒng)時(shí)間

    ? 在Java中,可以使用以下幾種方法獲取當(dāng)前系統(tǒng)時(shí)間: 方法1:使用java.util.Date類 ```java import?java.util.Date; public?class?Main?{ public?static?void?main(String[]?args)?{ Date?date?=?new?Date(); System.out.println(\\\"當(dāng)前時(shí)間:\\\"?+?date); } } ``` 方法2:使用java.time.LocalDateTime類(推薦,自Java?8引入

    2024年02月11日
    瀏覽(68)
  • Qt - 獲取系統(tǒng)當(dāng)前時(shí)間

    Qt獲取系統(tǒng)當(dāng)前時(shí)間的四種方法(一般使用第一種或者第二種) //current_date字符串結(jié)果為”2016.05.20 12:17:01.445 周五” 其中時(shí)間的顯示格式可靈活配置,此處簡(jiǎn)單說(shuō)明本實(shí)例中用到的部分: yyyy表示年;MM表示月;dd表示日; hh表示小時(shí);mm表示分;ss表示秒;zzz表示毫秒;ddd表示

    2024年02月06日
    瀏覽(25)
  • Python獲取當(dāng)前時(shí)間

    打印結(jié)果: 打印結(jié)果:? ? 打印結(jié)果: 2022-12-03 18:01:04? ?

    2024年02月13日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包