91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux應用層中怎么查看系統時間

發布時間:2021-08-11 14:43:30 來源:億速云 閱讀:235 作者:Leah 欄目:大數據

Linux應用層中怎么查看系統時間,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

一、基本概念:
    1、linux系統時間和硬件時間:
    系統時間:一般來說就是我們執行date命令查看到的時間,Linux系統下所有的時間調用(除了直接訪問硬件時間的命令)都是使用這個時間。
    硬件時間:主板上BIOS中的時間,由主板電池供電來維持運行,系統開機時要讀取這個時間,并根據它來設定系統時間。(注意:系統啟動時根據硬件時間設定系統時間的過程可能存在時區換算,這要視具體的系統及相關設置而定)。
    2、UTC時間與問題時間:
    UTC時間:Coordinated Universal Time,也就是協調世界時,又稱世界統一時間,世界標準時間,國際協調時間。在一般精度要求下,它與GMT(Greenwich Mean Time,世界時UT即格林威治標準時間)是一樣的。
    本地時間:由于處在不同的時區,本地時間一般與UTC是不同的,換算方法是:本地時間 = UTC + 時區。時區東為正,西為負,例如在中國,本地時間都是使用北京時間,在Linux上就是CST(China Standard Time,中國標準時,注意美國的中部標準時Central Standart Time也縮寫為CST,與這里的CST不是一回事),時區為東八區,也就是+8區,所以CST = UTC + (+8小時)
    例如,我通過時間指令(下面會講解),查看嵌入式開發板的系統時間和硬件時間如下:
Linux應用層中怎么查看系統時間
    從上圖可以看出,正好驗證了上面提到的CST = UTC + 時區的關系。
二、時間指令
    1、系統時間date
    查看系統時間和UTC的操作:直接調用date,可以得到本地時間。如果想得到UTC時間的話,使用date -u;
    設置系統時間的操作:格式:#date 月日時分年.秒。例如我之前查看的時間不正確,我要手動更改到現在的時間,輸入指令如下:
Linux應用層中怎么查看系統時間
    通過指令也可以查看到,系統時間確實已經更改了。
    2. 硬件時間 hwclock
    直接調用 hwclock 顯示的時間就是 BIOS 中的時間嗎?未必!這要看相關配置文件中是否啟用了UTC,如果啟用了UTC(UTC=true),顯示的其實是經過時區換算的時間而不是BIOS中真正的時間,如果加上 –localtime 選項,則得到的總是 BIOS 中實際的時間。查看指令如下:
Linux應用層中怎么查看系統時間
    因為是指令是相繼輸入,所以不是同一時刻的,但是可以看出,嵌入式開發板里的hwclock指令查看的,就是BIOS中實際的時間。
    設置硬件時間的操作:格式:hwclock –set –date==”月/日/年 時:分:秒”。
    更多詳細指令可以通過man、help指令進行查看。
三、其他常用查看時間指令
    1、uptime命令
Linux應用層中怎么查看系統時間
    2、查看/proc/uptime文件計算系統啟動時間
Linux應用層中怎么查看系統時間
    第一個數字即是系統已經運行的時間482.15秒,用系統工具date即可計算出系統啟動時間,指令如下:

date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"

    結果顯示:
Linux應用層中怎么查看系統時間
    3、通過/proc/uptime文件計算系統運行時間,指令如下;

cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系統已運行:%d天%d時%d分%d秒\n",run_days,run_hour,run_minute,run_second)}'

    結果顯示:
Linux應用層中怎么查看系統時間
    4、who命令
    who -b #查看最后一次系統啟動的時間
Linux應用層中怎么查看系統時間
    5、last rebbot查看Linux系統最后一次啟動時間
Linux應用層中怎么查看系統時間
    6、還有一些top、w也可以查看到時間
Linux應用層中怎么查看系統時間
Linux應用層中怎么查看系統時間
四、計算系統時間的程序
    時間對操作系統來說非常重要,從內核級到應用層,時間的表達方式及精度各部相同。linux內核里面用一個名為jiffes的常量來計算時間的滴答數。而應用層,可以利用time()、localtime()等函數,通過tm結構體得到系統時間。
    Linux內核版本為3.0.35的tm結構體如下:

#ifndef _TM_DEFINEDstruct tm {int tm_sec; /* 秒 – 取值區間為[0,59] */int tm_min; /* 分 - 取值區間為[0,59] */int tm_hour; /* 時 - 取值區間為[0,23] */int tm_mday; /* 一個月中的日期 - 取值區間為[1,31] */int tm_mon; /* 月份(從一月開始,0代表一月) - 取值區間為[0,11] */int tm_year; /* 年份,其值等于實際年份減去1900 */int tm_wday; /* 星期 – 取值區間為[0,6],其中0代表星期天,1代表星期一,以此類推 */int tm_yday; /* 從每年的1月1日開始的天數 – 取值區間為[0,365],其中0代表1月1日,1代表1月2日,以此類推 */int tm_isdst; /* 夏令時標識符,實行夏令時的時候,tm_isdst為正。不實行夏令時的進候,tm_isdst為0;不了解情況時,tm_isdst()為負。*/

Linux應用層中怎么查看系統時間
    程序中需要用到的函數:
    time函數獲得日歷時間。日歷時間,是用“從一個標準時間點到此時的時間經過的秒數”來表示的時間。這個標準時間點對不同的編譯器來說會有所不同,但對一個編譯系統來說,這個標準時間點是不變的,該編譯系統中的時間對應的日歷時間都通過該標準時間點來衡量,所以可以說日歷時間是“相對時間”,但是無論你在哪一個時區,在同一時刻對同一個標準時間點來說,日歷時間都是一樣的。
    localtime()函數是將日歷時間轉化為本地時間。
    asctime()函數是把timeptr指向的tm結構體中儲存的時間轉換為字符串字符串格式返格式為:回,Www Mmm dd hh:mm:ss yyyy。其中Www為星期;Mmm為月份;dd為日;hh為時;mm為分;ss為秒;yyyy為年份
    最終代碼如下:

#include <stdio.h>#include <sys/sysinfo.h>#include <time.h>#include <errno.h>int print_system_boot_time();int main ( int argc, char ** argv )
{if ( print_system_boot_time() != 0 )return -1;return 0;
}

print_system_boot_time()
{int year,month,day,wday,hour,min,sec;struct sysinfo info;struct tm *ptm = NULL;
    time_t cur_time = 0;if(sysinfo(&info))
    {fprintf(stderr, "Failed to get sysinfo, errno:%u, reason:%s\n", errno, strerror(errno));
    }
    time(&cur_time);
    ptm = localtime(&cur_time);
    year = ptm->tm_year + 1900;           //年month = ptm->tm_mon + 1;              //月day = ptm->tm_mday;                   //日wday = ptm->tm_wday;                  //星期hour = ptm->tm_hour;                  //小時min = ptm->tm_min;                    //分sec = ptm->tm_sec;                    //秒printf("The current date: %d-%-.2d-%d 星期%d %d:%.2d:%.2d\n", year, month, day, wday, hour, min, sec);printf("The current date is %s",asctime(ptm));return 0;
}

    結果顯示:
Linux應用層中怎么查看系統時間

關于Linux應用層中怎么查看系統時間問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

历史| 玉门市| 南澳县| 南川市| 定兴县| 济宁市| 安溪县| 郧西县| 涟源市| 万安县| 石城县| 应用必备| 鄯善县| 城口县| 太仓市| 板桥市| 金堂县| 淳安县| 长寿区| 花莲县| 昆山市| 尤溪县| 皮山县| 丹东市| 汪清县| 青田县| 闽侯县| 襄城县| 裕民县| 吴堡县| 图木舒克市| 阿鲁科尔沁旗| 哈巴河县| 尼勒克县| 湟中县| 东乌珠穆沁旗| 平阴县| 天门市| 高唐县| 吉安市| 乌海市|