參考鏈結
linux核心中表示時間的結構體和資料型別有5種, 具體其宣告的標頭檔案在:#include#include
extern
void
do_gettimeofday
(struct timeval *tv)
;//gettimeofday函式執行成功後返回0,失敗後返回-1,錯誤**存於errno中。
extern
intgettimeofday
(struct timeval *__restrict __tv, __timezone_ptr_t __tz)
;結構,最小時間單位為微秒(1e-6s)
struct timeval
;
extern
void
getnstimeofday
(struct timespec *tv)
;結構,最小時間單位為納秒(1e-9s)
struct timespec
;
struct timezone
;
struct tm
;
//time_t該型別被定義在include/linux/types.h中,它是乙個長整型,用來表示2023年以來的秒數。
typedef __kernel_time_t time_t;
函式原型
//把從1970.1.1零點零分到當前時間系統所偏移的秒數時間轉換為本地時間
struct tm *
localtime
(const time_t *clock)
;
//把從1970.1.1零點零分到當前時間系統所偏移的秒數時間轉換為格林威治(gmt)時間
//即位於英國倫敦郊區的皇家格林尼治天文台的標準時間
//!注意:不會經過時區變換
struct tm *
gmtime
(const time_t *time)
;
//string 轉 struct tm
char
*strptime
(const
char*,
const
char*,
struct tm *
);
//struct tm 轉string
size_t strftime
(char
*strdest,size_t maxsize,
const
char
*format,
const
struct tm *timeptr)
;
strptime與strftime格式化引數說明
函式strftime()的操作有些類似於 sprintf():識別以 百分號(%)開始的格式命令集合,格式化輸出結果放在乙個字串中。格式化命令說明串strdest中各種日期和時間資訊的確切表示方法。格式串中的其他字元原樣放進串中。格式命令列在下面,它們是區分大小寫的。
%a 星期幾的簡寫示例%a 星期幾的全稱
%b 月分的簡寫
%b 月份的全稱
%c 標準的日期的時間串
%c 年份的後兩位數字
%d 十進位制表示的每月的第幾天
%d 月/天/年
%e 在兩字元域中,十進位制表示的每月的第幾天
%f 年-月-日
%g 年份的後兩位數字,使用基於周的年
%g 年分,使用基於周的年
%h 簡寫的月份名
%h 24小時制的小時
%i 12小時制的小時
%j 十進位制表示的每年的第幾天
%m 十進位制表示的月份
%m 十時制表示的分鐘數
%n 新行符
%p 本地的am或pm的等價顯示
%r 12小時的時間
%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 時區名稱,如果不能得到時區名稱則返回空字元。
%% 百分號
//獲取當前精確時間(2023年1月1日到現在的時間)
struct timeval _tv;if(
-1==gettimeofday
(&_tv,
null))
//微秒精度會被丟棄
struct tm *now =
localtime
(&_tv.tv_sec)
;//struct tm 轉字串 "2020-12-03 00:36:38"
std::string strformat =
"now : %y-%m-%d %h:%m:%s"
;char chout[
100]=;
strftime
(chout,
100,strformat.
c_str()
, now )
;//字串轉struct tm
std::string strtmep=
"now : 2020-12-03 00:36:38"
;struct tm test;
strptime
(strtmep.
c_str()
, strformat.
c_str()
,&test)
;
獲取本地時間
獲取本地時間戳 int gettimestamp timeval tm gettimeofday tm,null return tm.tv sec 單位 秒 return tm.tv usec 單位 毫秒 獲取本地時間 time t t time null tm lt localtime t int...
獲取本地時間
獲取本地時間 struct tm tm time t timep if cc target platform cc platform win32 else localtime 功能 把從1970 1 1零點零分到當前時間系統所偏移的秒數時間轉換為日曆時間。說明 此函式獲得的tm結構體的時間,是已經進...
objectiveC獲取本地時間。
nsdate date nscalendardate date nslog date 日曆在ios裡報錯,nsdateformatter formatter nsdateformatteralloc init formatter setdateformat yyyy mm dd hh mm ss n...