|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
" q& n# Q( l3 ~6 f: y
Linux高级编程——时间编程
2 k* h+ U' w; D7 q D
. s, a0 S Q- n3 L
. ?, C- M7 [, m9 h1 时间类型( a2 S- {! A9 I
4 W) P# Y8 N& P5 y( ~7 Y9 ^# |9 t# {4 @* _$ J. K
(1) 世界标准世界(格林威治时间)
* r: V8 J7 J, t( C% {; U' S. ?+ [6 [ \* e% O: O
2 u4 q' ~& T* I6 }(2) 日历时间(1970年1月1日0时)——到此时经历的秒数
, }- I" U P) V$ m2 }6 R$ ]
% O1 R! p8 K9 Z7 G) c6 \4 @, v- a% ~0 V/ S
) z+ F6 [+ V( f* {+ Z0 Q
: K& j3 U/ u, y9 y8 J I# W% M2 时间获取
$ V! Z* p# |& p# W) k, Q* R
; r( Z6 C/ Q; l' x
: T+ m( W7 W7 b( @1 `#include<time.h>
. I. @2 I; R( y( F
6 u" j+ Q0 ?! R! @( H! [+ U
, s& t9 Z2 z$ D3 F% w |( ltime_ttime(time_t *tloc)——获取日历时间
4 g* Y& _% {9 n$ h1 L
# N7 x4 R/ a, p0 n& @8 G+ f7 Z" ^' j% M! g9 g6 O: f/ x
/*typedef longtime_t*/
9 {! r/ ?2 ]$ y. G2 a3 L- r+ p, P, ?
+ D3 D h' M1 H' J0 E3 X" `4 s0 S- x. j; b3 R& R
$ c ?) _/ t/ y% ~/ c9 P" S3 时间转化1 Y' ~; V/ X; f. G I. g8 w
) u6 k) `% X' V$ g2 d* h
7 `) E& n) t5 s! p5 kstruct tm*gmtime(const time_t *timep)5 g6 J7 P+ V4 Q. w% K' D
& \* x- E O/ g; i5 d* b; w3 K
, N( l8 M) R! ]5 r——将日历时间转化为格林威治标准时间,并保存至TM结构中
k+ T. b- ?; l8 \; H9 A9 i; R, X( _1 |- h$ T4 } T
9 t4 q& }% ^3 }6 H O- ostruct tm*localtime(const time_t *timep)
( s2 @# @! {; q* F
% G3 ~/ K0 s1 ]1 n) _ m" H" i* n6 D# A( C$ _% _
——将日历时间转化为本地时间,并保存至TM结构中; W: n) h! y$ `2 T) _5 Q
) g8 I5 C4 g8 Z- S0 X" e4 |2 o: i$ s* T& e+ e4 p& p
6 q4 k1 }* U( K
( z8 R, o! v G& q
4 时间保存
8 E( Q; x2 e P8 M/ k/ t
$ }0 |7 q8 I f' z: p
2 \2 o% d$ i; P0 i5 S) A; Q4 T- struct tm
- {
- int tm_sec;//秒值
- int tm_min;//分钟值
- int tm_hour;//小时值
- int tm_mday;//本月第几日
- int tm_mon;//本年第几月
- int tm_year;//tm_year+1990=哪一年
- int tm_wday;//本周第几日
- int tm_yday;//本年第几日
- int tm_isdst;//日光节约时间
- };
8 \4 I( Y4 @! s, s u% O) ~
$ A3 N' ~0 }- O9 |+ j# `+ [5 W8 S# _- F& ]# p- \! e! ]
5 W2 U& g3 l- r% J$ m8 t& L9 f7 C9 Y! P+ W
5 G' P3 p; B+ H# O( q9 a# ~# q5 时间显示
6 _" C& N: t. S' n3 q& q2 q3 i; N9 i4 T% a. Q( p: X
1 s; C$ G o5 ]. Y7 m5 jchar *asctime(conststruct tm* tm)- A7 }1 [& W# V
" X2 y0 t [& b. Y& c$ u7 `
3 X A( y1 Q8 X) M* h
——将tm格式的时间转化为字符串
% k! F9 v" ?# c9 f' h/ Y$ ?/ p
! {) t" r! c8 L
2 `% } Q8 U" \$ wchar*ctime(const time_t *timep)2 X# B7 a# K" b# Y: v6 t
2 ~0 n/ ?2 t; y* B2 ]) j
4 |3 \) B& n( G2 _* e Z: ^7 L: [
——将日历时间转化为字符串
# _8 v1 r3 D& B. X
" @( |. Y3 |; k* D: i1 ? x% Y6 ?2 g2 H8 ^6 q9 P
8 k. l* o0 x0 i" H6 S
- j* i# J/ p* p. t4 x
T, q& d2 A8 ? s5 z. k' \0 Y*Linux下显示系统时间实例: & J$ P' n, n" j# ?* y
' W" \, w9 e; J: F6 g% _. j8 h9 R# O0 c, w" Q3 o: P
- #include <time.h>
- #include <stdio.h>
-
- int main(void)
- {
- struct tm *ptr;
- time_t lt;
-
- /*获取日历时间*/
- lt=time(NULL);
-
- /*转化为格林威治时间*/
- ptr=gmtime(lt);
-
- /*以格林威治时间的字符串方式打印*/
- printf(asctime(ptr));
-
- /*以本地时间的字符串方式打印*/
- printf(ctime(lt));
- return 0;
- }
3 w: R/ `2 u8 R! b1 Z0 K2 C " `9 W. i" `, j9 }8 h, ?
: L& H4 ?: R, h/ c
0 P9 |4 g# _7 `- S( z, n5 F
. r/ B; W( k3 a& ?
" |9 d7 P1 R) E. Z1 q* J: V
' q& u2 B/ M; J# h) v& H7 z: _/ J0 k+ ^2 b1 k2 m0 A6 V) m
|
|