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

經常使用時間函數總結

系統 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條評論
主站蜘蛛池模板: 国产精品99久久久久久www | 99热国内精品 | 色天使色婷婷丁香久久综合 | 国产99视频精品免视看7 | 在线观看欧美视频 | 成人免费毛片观看 | 中文字幕亚洲综合久久202 | 欧美精品在线看 | 国产成人亚洲精品77 | 欧美亚洲高清日韩成人 | 伊人久久婷婷丁香六月综合基地 | 伊人一级 | 国内永久第一免费福利视频 | 欧美成人午夜免费完成 | 在线免费观看国产精品 | 久热国产在线视频 | 九九视频只有精品 | 欧美影院一区二区 | 中文字幕永久视频 | 欧美成人免费网在线观看 | 在线 色 | 亚洲黄区| 国产精品18久久久久网站 | 黄色片在线免费观看视频 | 人人揉揉香蕉大免费不卡 | 久久国产精品视频一区 | 97高清国语自产拍 | 免费一级毛片在播放视频 | 26uuu最新 | 色综合天天综合网国产成人 | 中日韩一区二区三区 | 亚洲伊人久久综合影院2021 | 国产亚洲综合视频 | 国产精品模特hd在线 | 久久九九青青国产精品 | 97国产影院 | 国产精品久久一区一区 | 杨幂国产精品福利在线观看 | 免费精品国产 | 成人短视频在线观看视频 | 999精品视频在线观看 |