linux中常用時間和字串之間相互轉化

2022-09-03 07:30:15 字數 1314 閱讀 2250

在linux中經常會遇到時間和字串相互轉化的情形,有兩個函式專門對應相應的轉化。

1、時間轉字串函式strftime

函式原型:size_t strftime(char *s,size_t maxsize,char *format,conststruct tm *timeptr)

strftime函式對timeptr指向的tm結構所代表的時間和日期進行格式編排,其結果放在字串s中。該字串的長度被設定為(最少)maxsize個字元。格式字串format用來對寫入字串的字元進行控制,它包含著將被傳送到字串裡去的普通字元以及編排時間和日期格式的轉換控制符。

輸入:const struct tm *timeptr

輸出:char *s,size_t maxsize,char *format

2、字串轉時間函式strptime

函式原型: char *strptime(const char *buf,const char*format,struct tm *timeptr)

format字串的構建方式和strftime的format字串完全一樣,strptime返回乙個指標,指向轉換過程處理的最後乙個字元後面的那個字元,

輸入:const char *buf,const char *format

輸出:struct tm *timeptr

實驗**:

#include

#include

int main()

;time_t timer = time(null);

strftime(szbuf, sizeof(szbuf), "%y-%m-%d %h:%m:%s", localtime(&timer));

printf("%s/n", szbuf);

return 0;

}執行結果:

2017-07-11 19:4

轉換控制符見下表:

轉換控制符

說明%a

星期幾的簡寫形式

%a星期幾的全稱

%b月份的簡寫形式

%b月份的全稱

%c日期和時間

%d月份中的日期,0-31

%h小時,00-23

%i12進製小時鐘點,01-12

%j年份中的日期,001-366

%m年份中的月份,01-12

%m分,00-59

%p上午或下午

%s秒,00-60

%u星期幾,1-7

%w星期幾,0-6

%x當地格式的日期

%x當地格式的時間

%y年份中的最後兩位數,00-99%y年

%z地理時區名稱

利用時間字串計算時間差

乙個訂單表,已知時間字串,需要計算出兩筆訂單之間的時間差,並找出兩筆訂單中時間差最大的乙個 import datetime time1 20201222171220360 time2 20201222171320120 time3 20201222171400360 time4 2020122217...

陣列和字串中常用的方法

1.填充替換陣列元素 1 fill int a,int value 用value的值替換陣列裡的每個元素。2 fill int a,int fromindex,int toindex,int value 用value替換陣列下標fromindex 包括 到下標toindex 不包括 的元素,toin...

陣列和字串中常用的方法

陣列中常用的方法 tostring 將陣列轉為字串 join 按照指定分隔符將陣列轉為字串 concat arr1,arr2 拼接多個陣列 slice start,end 擷取陣列元素,從start開始end結束,也可以倒著寫為負數時為從後向前 splice start,cont,value1,va...