當前位置:首頁 » 操作系統 » linux獲取時間

linux獲取時間

發布時間: 2022-01-09 00:26:29

linux中獲取時間的幾種方法

1,手動設置
2,utc
3,ntp自動或手動

Ⅱ linux 取當前時間前2小時時間

換成時間戳,然後減兩個小時的秒數,換算成有好格式及OK了!

Ⅲ Linux下C語言獲得系統時間的方法

沒有完整程序, 不過能提供一點資料

int gettimeofday(struct timeval * tv,struct timezone *tz);
這個函數可以獲取當前時間, 貌似只要第一個結構體就行了

struct timeval
{
time_t tv_sec; //秒 [long int]
suseconds_t tv_usec; //微秒 [long int], (10E-6 second)
};
struct timeval
{
long tv_sec;
long tv_usec;
};

然後取微秒的前三位就是小數了, 之後把秒 tv_sec 轉化為 tm 格式, 參數用秒的指針就行

struct tm * gmtime(const time_t * t);
//轉換成格林威治時間。有時稱為GMT或UTC。
struct tm * localtime(const time_t *t);
//轉換成本地時間。它可以透過修改TZ環境變數來在一台機器中,不同使用者表示不同時間.

下面是tm的部分參數

int tm_sec; //tm_sec表「秒」數,在[0,61]之間,多出來的兩秒是用來處理跳秒問題用的。/* Seconds: 0-59 (K&R says 0-61?) */
int tm_min; //tm_min表「分」數,在[0,59]之間。
int tm_hour; //tm_hour表「時」數,在[0,23]之間。
int tm_mday; //tm_mday表「本月第幾日」,在[1,31]之間。
int tm_mon; //tm_mon表「本年第幾月」,在[0,11]之間。
int tm_year; //tm_year要加1900表示那一年。 /* /* 年份,其值從1900開始 */*/
int tm_wday; //tm_wday表「本周第幾日」,在[0,6]之間。 /* Days since Sunday (0-6) */ /*其中0代表星期天,1代表星期一,以此類推 */
int tm_yday; //tm_yday表「本年第幾日」,在[0,365]之間,閏年有366日。 /*其中0代表1月1日,1代表1月2日,以此類推 */*/
int tm_isdst; //tm_isdst表是否為「日光節約時間」

------------------------------華麗麗的分割線--------------------------------------------------
由於很長時間沒編程了, 也沒有Linux環境, 我就簡單寫幾行代碼, 僅作參考

#include <stdio.h>
#include <time.h>
#include <sys/time.h>
#include<unistd.h>
//這四個不一定夠用了

struct timeval tv;
struct timezone tz;
struct tm * p_tm;
//變數沒有初始化習慣不好,不要學

gettimeofday(&tv, &tz);
p_tm = gmtime( (const time_t *)&tv.tv_sec );

字元串的組裝尤其格式問題自己解決吧
年 p_tm->tm_year+ 1900
月 p_tm->tm_mon+ 1
日 p_tm->tm_mday
時 p_tm->tm_hour+ 1
分 p_tm->tm_min+ 1
秒 p_tm->tm_sec+ 1
小數點後面的部分,注意不夠三位還是前面填充0 tv.tv_sec/1000

Ⅳ linux實時時間 xtime怎麼獲取並使用

RTC時間操作:

1.rtc時間是由rtc硬體控制的,所以在linux中想要修改和獲取rtc時間就只能通過驅動的介面來獲取和修改。

intrtc_test(void)

{

structrtc_timertc;

intfd=-1;

intret=-1;

fd=open("/dev/rtc0",O_RDWR);

if(fd<0){

return-1;

}

ret=ioctl(fd,RTC_RD_TIME,&rtc);

if(ret<0){

return-1;

}

printf(" CurrentRTCdata/timeis%d-%d-%d,%02d:%02d:%02d. ",rtc.tm_mday,rtc.tm_mon+1,

rtc.tm_year+1900,rtc.tm_hour,rtc.tm_min,rtc.tm_sec);

ret=ioctl(fd,RTC_SET_TIME,&rtc);

if(ret<0){

return-1;

}

return0;

}

2.除了上面這種方式操作rtc時間以外,linux中也有一個命令可以簡化rtc時間操作,hwclock,比如,可以通過system("hwclock-w");系統調用來把xtime設置到rtc硬體。

牆上時間(realtime、xtime):

linux系統中主要使用的就是xtime,它是系統運行的基礎,很多程序都是依賴於xtime來運行的,接下來將介紹將如何操作xtime。

1.獲取、設置微秒級別的時間:

#include

#include

structtimeval

{

inttv_sec;

inttv_usec;

};

intgettimeofday(structtimeval*tv,structtimezone*tz);

intsettimeofday(conststructtimeval*tv,conststructtimezone*gz);

功能描述:

gettimeofday()獲取當前時間,有tv指向的結構體返回。

settimeofday()把當前時間設成由tv指向的結構體數據。當前地區信息則設成tz指向的結構體數據。

2.獲取秒級別的時間

typedeflongtime_t;

time_ttime(time_t*t);

如果t是non-null,它將會把時間值填入t中

3.內核2.6版本後新增的clockapi介面

獲取納秒級別的時間

structtimespec{

time_ttv_sec;/*秒s*/

longtv_nsec;/*納秒ns*/

};

intclock_getres(clockid_tclk_id,structtimespec*res);

intclock_gettime(clockid_tclk_id,structtimespec*tp);

intclock_settime(clockid_tclk_id、conststructtimespec*tp);

編譯連接時採用-lrt才能編譯通過。

clk_id可選參數:

CLOCK_REALTIME

系統全局的實時時鍾.設置此時鍾需要合適的許可權.

CLOCK_MONOTONIC

只能被讀取,無法被設置,表示monotonic時間起點.

CLOCK_PROCESS_CPUTIME_ID

從cpu每進程的高解析度計時器.

CLOCK_THREAD_CPUTIME_ID

線程的特定cpu時間時鍾.

系統啟動時,會首先從rtc中讀取rtc時間,並設置給xtime,而當ntp對系統時間進行更新時,首先設置xtime,然後調用hwclock設置到rtc硬體中。xtime根據需要的精度,可以通過上面幾個介面來選擇使用。


Ⅳ linux 獲取命令執行結果時間

執行命令後,執行date,類似於這種,ls ; date,如果是腳本可以把data保存為一個變數,通過echo $變數名 列印出來

Ⅵ linux獲取當前時間的命令

題主你好,

linux下使用 date 命令獲取日期和時間.

說明: 單獨使用date命令顯示的比較全, 年月日時分秒,星期幾都會顯示出來.如果只需要顯示某一維度或某幾個維度的值,可能加參數實現. 如果題主想知道請追問.

希望可以幫到題主, 歡迎追問.

Ⅶ linux內核獲取時間問題

1 tv_usec是微秒,變小是因為秒進位了,你要同時把秒輸出就能看出來了
2 有個常量HZ 它和jiffies是互為倒數. 以前一直是100, 也就是1秒100下,就是1個j=10毫秒
如今也有更快的,比如1000.但是在用戶空間,一直是100.

所以jiffies非常快,會容易溢出, 例如一個無符號整形存儲秒,那麼69年左右會溢出
毫秒的話要除1000, 不到一個月就溢出了.而電腦的運行時間是完全可以達到這么久不重啟的.
jiffies_64就不用擔心這個問題了.

3可參加linux/time.h中提供的api,精確到微秒

Ⅷ linux中,怎麼通過shell語句獲取當前日期,輸出格式要求20111224.

在Linux下,可以通過date語句來獲取當前日期:

輸入:date +%Y%m%d

輸出:20190314

命令實際執行情況如下圖:


(8)linux獲取時間擴展閱讀

GNU 對 date 命令的另一個擴展是 -d 選項,使用這個功能強大的選項,您可以完成很多有意義的工作。

1、快速地查明一個特定的日期究竟是星期幾:

輸入:date -d "nov 22"

輸出:2019年 11月 22日 星期五 00:00:00 CST

在本示例中,您可以看到今年(2019年)的 11 月 22 日是星期五。

2、獲得相對日期

-d 選項還可以告訴您,相對於當前日期之前或者以後的日期。

如,您需要了解兩星期以後的日期,那麼:

輸入: date -d "2 weeks"

輸出:2019年 03月 29日 星期五 00:12:24 CST

3、使用 next/last指令,您可以得到以後的星期幾是哪一天:

輸入: date -d "next monday" (下周一的日期)

輸入: date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d

輸入: date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d

輸入: date -d last-month +%Y%m(上個月是幾月)

輸入: date -d next-month +%Y%m(下個月是幾月)

4、使用 ago 指令,您可以得到過去的日期:

輸入: date -d "30 days ago" (30天前的日期)

5、您可以使用負數以得到相反的日期:

輸入: date -d "dec 14 -2 weeks" (相對:dec 14這個日期的兩周前的日期)

輸入: date -d "-100 days" (100天以前的日期)

輸入: date -d "50 days" (50天後的日期)



Ⅸ linux c++ 如何獲取 系統時間

用cstlib函數time,比如

#include <iostream>
#include <cstlib>

using namespace std;

int main()
{
int t, h, m, s;
t = time( 0 );
t = t % 86400;
s = t % 60;
t = ( t - s ) / 60;
m = t % 60;
t = ( t - m ) / 60;
h = t;
cout << "現在是" << h << ":" << m << ":" << s << endl;
return 0;
}

即可顯示

Ⅹ linux下獲取系統時間的方法有哪些

date 命令查看系統當前時間
uptime 命令列出當前系統時間,運行天數,和負載情況

熱點內容
實測華為編譯器 發布:2024-09-19 23:50:52 瀏覽:821
linux匯總 發布:2024-09-19 23:46:39 瀏覽:452
阿里雲伺服器環境搭建教程 發布:2024-09-19 23:21:58 瀏覽:837
黃色文件夾圖標 發布:2024-09-19 23:19:22 瀏覽:684
mysql資料庫導出導入 發布:2024-09-19 23:00:47 瀏覽:183
lua腳本精靈 發布:2024-09-19 23:00:41 瀏覽:659
任務欄文件夾圖標 發布:2024-09-19 22:54:25 瀏覽:101
解壓來一波 發布:2024-09-19 22:46:36 瀏覽:933
mysqlpythonubuntu 發布:2024-09-19 22:46:27 瀏覽:501
伺服器請求獲取ip地址 發布:2024-09-19 22:33:25 瀏覽:515