|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
# [. n; _6 S3 _. D
Linux高级编程——时间编程 6 B* d# d/ p8 b I) p6 e4 _
1 J, d$ H- ~* X( G3 f, ^! [/ h. E9 g. P! E# v
1 时间类型
* z: t6 a4 c2 c2 A. p! ?% p3 J( @" J/ p. l7 f6 K7 h! T/ N" c
5 l! @ ?" p1 N( H
(1) 世界标准世界(格林威治时间)
8 l4 c: l; r# [" X3 }6 {& b) _* L' x
' V2 K" W3 F/ W/ O# V/ b
(2) 日历时间(1970年1月1日0时)——到此时经历的秒数8 B% h- E5 I, ^0 A8 c5 y
: ^7 Q% I. T) z: z* m4 O- s
8 d4 Q' H( W5 r/ J
) @0 y. m/ r( h% a3 r* q+ w- g' ?( E9 O- V% Q) m1 U
2 时间获取' |. q: [6 i9 @* e8 I9 P
) F- p6 ]/ h& K v! O( L( P
' {/ S1 t, u# s3 n* ?: Q1 x' c- g: s* G#include<time.h>
p: M( u6 j: e- z
4 I3 o$ A( h/ a s/ \
+ @) k6 k1 C: itime_ttime(time_t *tloc)——获取日历时间% h- S+ f1 W3 `$ I: q( \# V
+ h' J* U% O" a6 a& U
0 e4 g4 W9 o7 R5 {- `2 h' e) K/*typedef longtime_t*/
% \+ y) z; ]. C: {) c& s% C2 x i- @! w* x* q( z
4 @1 A$ a( k0 L) r9 T. V
0 c; X& e- ~9 h" C8 U, j- ^6 d1 `" J0 ]) d
3 时间转化
/ w) U/ ~- O6 T4 M
: N( R) H6 a5 K$ d7 n* V+ t& Q* I) q
struct tm*gmtime(const time_t *timep)
7 M0 g* a# q1 P: ?: W- p l9 g0 Y; ^% r9 w% c( \( k4 S" x: w2 g K
) `' I8 E5 d1 I% E3 b h——将日历时间转化为格林威治标准时间,并保存至TM结构中0 Y5 H1 y0 g. F! l
) N3 o; n% W- F _+ H
3 i2 a/ X8 L' b: q, y" d* r* i1 rstruct tm*localtime(const time_t *timep)
- W- T, s; e2 x0 a3 K
# t% H* J& Q: X& E
. \. M. ^& V5 w8 Y- m! g——将日历时间转化为本地时间,并保存至TM结构中
; O. C1 z A. [. Z0 F3 Z- w
8 U; l3 m) J& R j8 h6 c
}5 Z7 [: b% n( R% Z
" V( {4 Q- Z# t1 L& ? |4 d9 K- s$ [# d- b5 ?
4 时间保存$ z( X k2 Z7 h- X0 H
! r) q; [# d( M
% a& c; y! A! B2 z( i: p
- 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;//日光节约时间
- };: ^0 Z1 D: s$ c3 `+ h W% @
* u$ Z( I# K+ j8 G7 b* S9 D( ?9 n! [9 _% x
" H% D* o& q, e" ?* t$ {2 t9 I3 K& B7 w5 O
5 ?& b- F- a9 i8 b1 n O/ z
5 b1 ?3 g9 m$ z) O5 时间显示* ?' m( |$ o$ \# p6 e, ~( t+ v7 _
& b4 y% A# q' ?5 H
1 ^7 d; q7 s! p W1 Cchar *asctime(conststruct tm* tm): `7 e+ M4 H" \2 Q
8 R$ Y: }1 b/ q6 L6 C& ]
3 a8 B: R5 ]+ e! p! [" N& U# m——将tm格式的时间转化为字符串
3 @- z5 a( o W/ O3 X$ }8 k8 u' i8 V5 q# n4 O3 N R& E! O4 O
: a b# O3 b* s: pchar*ctime(const time_t *timep)
6 A, e, l: ?0 u+ `3 A; c6 |
: G K& L$ @0 L& v8 V: |5 u
/ o% X/ w7 i3 W——将日历时间转化为字符串6 K. d1 o6 [4 R6 t
; [) z& u! ~4 }% Q: ?# ]8 f. i; U, z* ~' p7 |/ _# {3 G9 y
u, j2 f$ l5 D
: I b7 ^9 i, o
( \1 A5 H2 M9 f' ?: I1 ]*Linux下显示系统时间实例: % O7 c6 m. [4 ?/ B3 A
. r% l8 s1 h2 x1 G3 r
$ s8 g, Q, W7 {3 t4 o- d j: N" N- #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;
- }/ N4 V4 X, i0 f- d* I( _
# H. y, I8 r: N H* E; e" j. ~
. q8 I9 Q' ]! c4 T6 q& `* n. X6 Q' ?
2 H7 {) }! ?' Q/ z" C& G
, A/ a! B) N# h9 z2 ~. ]
) b8 m1 o3 M5 ]" ]: n
5 Z6 C7 w% _8 S/ \; g( X j4 F2 G( z) t5 A0 G: F
|
|