學習SLAM c 時間戳 獲取與轉換

2021-09-20 03:48:46 字數 2180 閱讀 4325

自 1970 年 1 月 1 日以來經過的秒數:

time_t time1 = time(0);//這裡獲取到的其實就是乙個long型別的時間戳,是秒級別的(10位),非毫秒級別

time_t time1 = time(0);

cout << "time1 = " << time1 << endl;//1498122787

char * strtime = ctime(&time1);

cout << "strtime = " << strtime << endl;//thu jun 22 17:13:07 2017

time_t starttime = 1498122787;

double betweensecond = difftime(time1, starttime);//該函式返回 time1 和 time2 之間相差的秒數。

cout << "betweensecond = " << betweensecond << endl;//thu jun 22 17:13:07 2017

1.時間戳轉格式化

time_t t = time(0);

struct tm *p;

p=gmtime(&t);

char s[100];

strftime(s, sizeof(s), "%y-%m-%d %h:%m:%s", p);

printf("%d: %s\n", (long)t, s); //1498124250: 2017-06-22 09:37:30

2.格式化轉時間戳

long gettick(char *str_time)

int main()

// mothed  1   2019-04-28 17:07:19

#include #include #include #include using namespace std;

string gettime()

int main()

std::time_t gettimestamp()

其中int64 為自定義跨平台的資料型別

std::tm* gettm(int64 timestamp)

// mothed 2019-04-28 17:07:19

#include #include #include // for time stamp

#include #include #includeusing namespace std;

std::time_t gettimestamp()

std::clock_t gettimestamp_s()

int main()

double getcurrenttime_s()//******x

int main()

time to do 10000000 empty loops is 0.03000 seconds

上面我們看到時鐘計時單元的長度為1毫秒,那麼計時的精度也為1毫秒,那麼我們可不可以通過改變clocks_per_sec的定義,通過把它定義的大一些,從而使計時精度更高呢?通過嘗試,你會發現這樣是不行的。在標準c/c++中,最小的計時單位是1毫秒。

巨集clocks_per_sec適用於將計算系統時間型別轉換為使用者可讀的秒時間,包含於標頭檔案ctime(或time.h)中

利用clock()函式和for迴圈完成程式定時暫停

在很久以前人們就用for來使程式暫停了,但是面對的問題是計算機越來越強大,以至於單用for迴圈已經無法控制計算機的處理速度,此時使用clock()函式就可以完成對程式的有效計時,並將這個時間用於暫停。

#include

#include//or time.h

using namespace std;

int main()

//省略

int b;

int b=clock()/clocks_per_sec;

for(int i=0;i<100;)//完成100毫秒定時

i=clock()/clocks_per_sec;

i=i-b;

//省略

return 0;

Go語言 時間與時間戳的獲取和轉換

csdn部落格 需要 import time 包 獲取當前時間戳,單位s,列印結果 1491888244 timeunix time.now unix 獲取當前時間戳,單位納秒,列印結果 1491888244752784461 timeunixnano time.now unixnano 獲取指定時...

C 獲取時間戳,時間戳與時間格式互轉

最近專案中用到獲取時間的功能,現在把用到的分享一下。1.時間戳轉為 00 00時區 日期格式 yyyy mm dd hh mm ss 時間戳轉為 00 00時區 日期格式 yyyy mm dd hh mm ss public static datetime getutcdatetime string...

C DateTime與時間戳轉換

c datetime與時間戳的相互轉換,包括j ascript時間戳和unix的時間戳。1.什麼是時間戳 首先要清楚j ascript與unix的時間戳的區別 j ascript時間戳 是指格林威治時間1970年01月01日00時00分00秒 北京時間1970年01月01日08時00分00秒 起至現...