C言語「time.h」時間、日付操作
9475 ワード
文書ディレクトリ time.h 例 strftime()のフォーマットパラメータ について
time.h
4つの変数タイプ、2つのマクロ、およびさまざまな操作日時の関数を定義します.
例
しゅつりょく
strftime()のフォーマットパラメータについて
time.h
4つの変数タイプ、2つのマクロ、およびさまざまな操作日時の関数を定義します.
/*
* size_t , sizeof 。 unsigned long
* clock_t 。 unsigned long
* time_t is 。 long
* struct tm
* 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; ,1 0, [0-11]
* int tm_year; , 1900
* int tm_wday; , [0-6]
* int tm_yday; ,[0-365]
* int tm_isdst;
* long tm_gmtoff; UTC 。
* char *tm_zone;
* }
*
*
* NULL 。
* CLOCKS_PER_SEC 。
*
* ,time_t tm , time_t tm
*/
例
#include
#include
void time_test() {
clock_t start = clock();// ( ),cpu 。
time_t tl;
printf("a. %ld
", time(&tl)); // , time_t
struct tm *cur = localtime(&tl); //time_t tm , 。
// :Www Mmm dd hh:mm:ss yyyy。 Www ;Mmm ;dd ;hh ;mm ;ss ;yyyy 。
printf("b. %s", asctime(cur)); //tm 。
printf("c. %s", ctime(&tl)); // , time_t 。
struct timespec ts;
ts.tv_sec = 3; //
ts.tv_nsec = 1500;
nanosleep(&ts, NULL); // ts 。
time_t ntl;
printf("d. %f
", difftime(tl, time(&ntl))); // time_t time_t 。 double
//time_t tm , (UTC) (GMT) 。
struct tm *tmg = gmtime(&tl);// , ( ) 8 , , 8 。
printf("e. %s", asctime(tmg));//tm 。
printf("f. %ld
", mktime(tmg));// time_t
char str[20];
/*
* size_t strftime(char *strDest, size_t maxsize, const char *format, const struct tm *timeptr);
* format timeptr strDest , strDest maxsize 。
* strDest , 。
*
* , 2020-02-23 12:13:53 19 , '\0', 20 。
*/
size_t dstSize = strftime(str, 20, "%Y-%m-%d %T", tmg);
// maxsize =20, dstSize=19; maxsize=19,dstSize=0
printf("g. %s, dstSize=%lu
", str, dstSize);
printf("h. :%lu
", clock() - start);// clock() 。 。
}
しゅつりょく
a. 1582461171
b. Sun Feb 23 20:32:51 2020
c. Sun Feb 23 20:32:51 2020
d. -3.000000
e. Sun Feb 23 12:32:51 2020
f. 1582432371
g. 2020-02-23 12:32:51, dstSize=19
h. :902
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 , ( 1 7, 1)
%U , ( 0 53)
%V ,
%w ( 0 6, 0)
%W , ( 0 53)
%x
%X
%y ( 0 99)
%Y
%z,%Z , 。
%%