亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

經常使用時間函數總結

系統 1731 0
在計算機中,時間通常有三個作用:表示時間、計時和定時。本文將主要介紹一些經常使用的表示時間的函數,以及他們之間的轉換,對于其他的使用方法,在興許中補充。
一、基本概念
? ? ?1. 世界標準時間(UTC,?Coorainated Universal Time)是最基本的世界時間標準,其以原子時秒長為基礎,在時刻上盡量接近于格林尼治標注年時間(GMT,Greenwich Mean Time),在大多數場合,UTC與GMT等同,僅僅是GMT不再由科學界精確定義。
? ? ?2. 本地時間(Local time)指相對于UTC/GMT時間的本地時間(時區轉換)。比方,中國內地的時間與UTC的時差為+8,也就是UTC+8。美國是UTC-5。
? ? ?3. 日歷時間(Calendar time)是從一個標準時間點(epoch)到如今的時間經過的秒數,不包含插入閏秒對時間的調整。開始計時的標準時間點,各種編譯器一般使用1970年1月1日0時0秒。日歷時間用數據類型time_t表示。time_t類型實際上通常是32位或64位整數類型。
注:閏秒是在協調世界時(UTC)中添加?或降低一秒,使它與平太陽時貼近所做調整。
? ? ?4.?時鐘滴答數(clock tick),從進程啟動開始計時,因此這是相對時間。每秒鐘包括CLOCKS_PER_SEC(time.h中定義的常量,一般為1000)個時鐘滴答。時鐘滴答數用數據類型clock_t表示。clock_t類型通常是32位整數類型。
? ? ?5. 分解時間(broken-down time),用結構數據類型tm表示,tm包括下列結構成員:
#ifndef _TM_DEFINED
struct 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()為負。*/
?};
#define _TM_DEFINED
#endif
二、轉換時間概覽
時間轉換概覽
? ? ?當中,asctime、ctime、gmtime、localtime四個函數是非線程安全的,其相應的線程安全的版本號為asctime_r、ctime_r、gmtime_r、localtime_r.
三、各個函數的具體說明
1. mktime
? ? ?time_t? mktime (struct tm* ptm)
? ? ?從分解時間tm到日歷時間time_t的轉換。
2. timegm
? ? ?time_t? timegm (struct tm* brokentime)
? ? ?從分解時間tm(被視作UTC時間,不考慮本地時區設置)到日歷時間time_t的轉換。該函數較少被使用。
3. gmtime
? ? ?struct tm*? gmtime (const time_t* timer)
? ? ?從日歷時間time_t到分解時間tm的轉換。函數返回的是一個靜態分配的tm結構存儲空間,該存儲空間被gmtime, localtime與ctime函數所共用. 這些函數的每一次調用會覆蓋這塊tm結構存儲空間的內容。
4. localtime
? ? ?struct tm*? localtime (const time_t* timer)
? ? ?從日歷時間time_t到分解時間tm的轉換,即結果數據已經調整到本地時區與夏令時。
5. asctime
? ? ?char * asctime (const struct tm* tmptr)
? ? ?把分解時間tm輸出到字符串,結果的格式為"Www Mmm dd hh:mm:ss yyyy",即“周幾 月份數 日數 小時數:分鐘數:秒鐘數 年份數”。函數返回的字符串為靜態分配,長度不大于26,與ctime函數共用。函數的每次調用將覆蓋該字符串內容。
6. ctime
? ? ?char*? ctime (const time_t* timer)
? ? ?把日歷時間time_t timer輸出到字符串,輸出格式與asctime函數一樣.
7. strftime
? ? ?size_t? strftime (char* s, size_t n, const char* format, const struct tm* tptr)
? ??把分解時間tm轉換為自己定義格式的字符串,類似于常見的字符串格式輸出函數sprintf。
8. strptime
? ? ?char * strptime(const char* buf, const char* format, struct tm* tptr)
? ? ?strftime的逆操作,把字符串依照自己定義的格式轉換為分解時間tm。
附:strptime和strftime中使用的格式化命令:
%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 時區名稱,假設不能得到時區名稱則返回空字符。
%% 百分號


參考文獻:

經常使用時間函數總結


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲欧洲日产国码二区首页 | 92自拍视频| 亚洲最大的成人网 | 午夜在线精品不卡国产 | 国产亚洲福利精品一区二区 | 日本免费不卡在线一区二区三区 | 日本免费中文字幕在线看 | 国内精品视频一区二区八戒 | 亚洲国产精品久久婷婷 | 国产精品国产精品国产专区不卡 | 久草5| 涩涩视频免费 | 91精品国产福利尤物 | 日日欧美 | 国产欧美日韩高清专区ho | 久久久亚洲欧洲日产国码二区 | 亚洲综合色在线 | 亚洲国产一区在线精选 | 久久精品国产麻豆不卡 | 亚洲日韩中文字幕在线播放 | 亚洲一区精品视频在线 | 夜夜操夜夜操 | 天天做天天爱天天爽天天综合 | 国产一区二区亚洲精品天堂 | 国产亚洲女人久久久久久 | 午夜欧美日韩 | 欧美日本亚洲国产一区二区 | 99精品一区二区三区 | 在线播放精品视频 | 欧美aaaaa一级毛片在线 | 99热视热频这里只有精品 | 一本本久综合久久爱 | 欧美日韩一区在线观看 | 久久久久久久久综合 | 一级a爱片久久毛片 | 日本一极毛片兔费看 | 欧美理论大片清免费观看 | 337p日本欧洲亚洲大胆艺术 | 成人在线视频免费观看 | 97国产在线视频公开免费 | 日日插日日操 |