歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux 下的時間函數

Linux 下的時間函數

日期:2017/2/28 16:06:37   编辑:Linux教程

做數據庫讀寫操作,文件操作,數據傳輸,經常需要手動打時間標記,獲取時間的函數自然要了然於心。

time_t 這個類型就是用來存儲1970年到現在經過了多少秒,需要更精確一些,可以用timeval,它精確到微秒。

  1. struct timeval
  2. {
  3. long tv_sec; //second
  4. long ttv_usec; // micro second
  5. };
而time_t 則是一個long類型。
  1. #ifndef __TIME_T
  2. #define __TIME_T
  3. typedef long time_t;
  4. #endif
直接存儲年月日的是這樣一個結構:
  1. struct tm
  2. {
  3. int tm_sec;
  4. int tm_min;
  5. int tm_hour;
  6. int tm_mday;
  7. int tm_mon;
  8. int tm_year; //從1900到現在的年數
  9. int tm_wday; //一周中的第幾天
  10. int tm_yday; //今年1月1日到目前的天數,范圍0-365
  11. int tm_isdst; //日光節約時間的旗標
  12. };

時間函數包含在如下頭文件中:

#include<time.h>

  1. #include <time.h>
  2. char *asctime(const struct tm* timeptr); //將結構中的信息轉換為真實世界的時間,以字符串的形式顯示
  3. char *ctime(const time_t *timep); //將timep轉換為真是世界的時間,以字符串顯示,它和asctime不同就在於傳入的參數形式不一樣
  4. double difftime(time_t time1, time_t time2); //返回兩個時間相差的秒數
  5. int gettimeofday(struct timeval *tv, struct timezone *tz); //返回當前距離1970年的秒數和微妙數,後面的tz是時區,一般不用
  6. struct tm* gmtime(const time_t *timep); //將time_t表示的時間轉換為沒有經過時區轉換的UTC時間,是一個struct tm結構指針
  7. stuct tm* localtime(const time_t *timep); //和gmtime類似,但是它是經過時區轉換的時間。
  8. time_t mktime(struct tm* timeptr); //將struct tm 結構的時間轉換為從1970年至今的秒數
  9. time_t time(time_t *t); //取得從1970年1月1日至今的秒數。
Copyright © Linux教程網 All Rights Reserved