Linux C 時間與日期

2021-07-14 09:38:55 字數 1897 閱讀 4260

linux下儲存時間常見的有兩種儲存方式,乙個是從2023年到現在經過了多少秒,乙個是用乙個結構來分別儲存年月日時分秒的。

time_t 這種型別就是用來儲存從2023年到現在經過了多少,要想更精確一點,可以用結構struct timeval,它精確到微妙

struct timeval;

而直接儲存年月日的是乙個結構:

struct tm

;需要特別注意的是,年份是從2023年起至今多少年,而不是直接儲存如2023年,月份從0開始的,0表示一月,星期也是從0開始的, 0表示星期日,1表示星期一。

可參考:

即:linux下有三種型別表示時間,秒級別的time_t,毫/微秒級別的timeval,格式化時間tm,轉換關係如下;

下面介紹一下我們常用的時間函式:

#include

char *asctime(const struct tm* timeptr);

將結構中的資訊轉換為真實世界的時間,以字串的形式顯示

char *ctime(const time_t *timep);

將timep轉換為真是世界的時間,以字串顯示,它和asctime不同就在於傳入的引數形式不一樣

double difftime(time_t time1, time_t time2);

返回兩個時間相差的秒數

int gettimeofday(struct timeval *tv, struct timezone *tz);

返回當前距離2023年的秒數和微妙數,後面的tz是時區,一般不用

struct tm* gmtime(const time_t *timep);

將time_t表示的時間轉換為沒有經過時區轉換的utc時間,是乙個struct tm結構指標

stuct tm* localtime(const time_t *timep);

和gmtime類似,但是它是經過時區轉換的時間。

time_t mktime(struct tm* timeptr);

將struct tm 結構的時間轉換為從2023年至今的秒數

time_t time(time_t *t);

取得從2023年1月1日至今的秒數。

time, gmtime, asctime 所表示的時間都是utc時間,只是資料型別不一樣, 而

localtime, ctime 所表示

的時間都是經過時區轉換後

的時間,它和你用系統命令date所表示的cst時間應該保持一致

。%r 顯示小時和分鐘:hh:mm

%s 十進位制的秒數

%t 水平製表符

%t 顯示時分秒:hh:mm:ss

%u 每週的第幾天,星期一為第一天 (值從0到6,星期一為0)

%u 第年的第幾周,把星期日做為第一天(值從0到53)

%v 每年的第幾周,使用基於周的年

%w 十進位制表示的星期幾(值從0到6,星期天為0)

%w 每年的第幾周,把星期一做為第一天(值從0到53)

%x 標準的日期串

%x 標準的時間串

%y 不帶世紀的十進位制年份(值從0到99)

%y 帶世紀部分的十制年份

%z,%z 時區名稱,如果不能得到時區名稱則返回空字元。

%% 百分號

如果想顯示現在是幾點了,並以12小時制顯示,就象下面這段程式:

#include "time.h"

#include "stdio.h"

int main(void)

其執行結果為:

it is now 4pm

而下面的程式則顯示當前的完整日期:

#include

#include

#include

int main( void )

Linux C 時間與日期

linux下儲存時間常見的有兩種儲存方式,乙個是從1970年到現在經過了多少秒,乙個是用乙個結構來分別儲存年月日時分秒的。time t 這種型別就是用來儲存從1970年到現在經過了多少秒,要想更精確一點,可以用結構struct timeval,它精確到微妙。struct timeval 而直接儲存年...

時間與日期

通常確定時間和日期對乙個程式來說是很有用的,程式可能希望記錄執行時間.或者在某一時間後改變執行方式.例如乙個遊戲可能需要玩家在倒計時內完成某個任務 所有的 系統都使用同一時間和日期起點 格林威治時間 1970年1月1日.而 紀元開始於1980年.時間通過乙個長整型的預定義型別time t來表示,它和...

c 時間與日期

注意c 11有更強大的方法!隨機數及atoi include int abs int num 功能 函式返回引數num.的絕對值。double atof const char str 功能 將字串str轉換成乙個雙精度數值並返回結果。int atoi const char str 功能 將字串str...