|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
+ v( x4 X6 Z; ~
Linux高级编程——时间编程
4 m6 l' i) d8 x2 j
- t* `+ v( f" d) d% `' d1 V7 K' H
1 时间类型6 H7 R+ ~7 W! Y0 x- f
0 b3 V& `7 C7 M3 d" T1 n, O+ ?6 G' E. H0 S
(1) 世界标准世界(格林威治时间); a. C B. m4 U1 v0 [; ~6 Y% V
* s; h4 `) T9 E+ f2 T
4 x/ p' J& c, G
(2) 日历时间(1970年1月1日0时)——到此时经历的秒数
( }% G" p, j7 d- K# I% T& c
4 F, H- d& U0 x* D; Z- J$ p" q- ~, l; R5 k* a
( a/ p( m& Q; O% u# |3 u& C+ B
. M* t! b7 e3 w7 E2 w9 p
2 时间获取/ W. L5 y: ] F* T7 Z
) Z8 q" z1 e6 z9 E' A
; F! I7 F: V3 e#include<time.h>, S5 z, K4 F1 g- w }7 ?" U* J
k* o5 v6 Q3 G6 p; [
5 m0 q, g* E5 C3 R8 b
time_ttime(time_t *tloc)——获取日历时间
) s. @; d6 l5 D+ r, U- J. x* c, ^2 s1 l. d3 r
' k7 L& }7 L$ W/*typedef longtime_t*/
) {6 f$ o, N, ?
" |+ B$ \' B K. z2 P) M2 V1 O% h% b& n
A) v0 s: |8 z. F$ o. T# O* E1 k2 Z6 k0 [6 l% R
3 时间转化4 R# d: S* `4 P; `' ^5 Z
2 Z& _" v. t; L) M2 j2 U- N/ z% v( B" U) y# \" L" _0 F
struct tm*gmtime(const time_t *timep)
# M, |1 L6 V+ o5 H8 B1 I! [
( E/ J7 E, K& I0 A- r" s* j
$ K/ U8 n- u' I; I- f+ g2 H——将日历时间转化为格林威治标准时间,并保存至TM结构中
7 M4 K" B: o/ i+ M& U6 X; ?; i b9 P |: ~, t# f; o
3 Z, [' ?1 D0 }3 T7 ?# |+ j2 K! u
struct tm*localtime(const time_t *timep), `( v0 Z- \. W6 D
& k# r _* ~% y5 w9 U( w
3 c; X$ c2 s9 b* h, s: ~" N+ m* A0 N7 I——将日历时间转化为本地时间,并保存至TM结构中
7 s- P+ C+ _ v& g) _, b. ]0 a' g6 R4 h+ z
. I3 v5 a* X/ Z9 @- h3 b2 v
8 B- N5 Y' { n+ G8 {3 b+ B e
1 I" m, Y- u/ ]8 i5 d
4 时间保存- m: p& Z( ~: J: j
( R4 P3 e! a9 |9 T5 ?( a" L* {: H+ o7 d7 x* V
- 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;//日光节约时间
- };3 ~; h. l- S! F+ y- z3 e
: {5 s& X( v7 v, y( _1 T) V/ P
6 Q+ t& c: y& z4 R/ J( e/ r/ k% d' V; c
/ U1 V7 X+ K+ h' U3 O
" {' h: d9 a3 T# s( ]2 G `
5 时间显示# a5 f; d D6 J0 L
( P6 q6 g9 N9 a' n* E4 H) t
) L( Q# G2 W3 b# a8 i
char *asctime(conststruct tm* tm)" C7 O: Q7 R/ \& ^/ G
. C4 A* Q# S/ a& b- w8 |+ v& {8 l) j; X5 ]7 l6 n4 j
——将tm格式的时间转化为字符串# w% Y" ?! q* J+ i1 ^: k
$ B- c! g& W0 u7 @
( i2 X" C, O& B; |char*ctime(const time_t *timep)
: u# u3 d# e: ^/ x
( Z9 {4 u+ z, t
& H, ]" T! w9 F3 b' G+ K$ y' {: P) H——将日历时间转化为字符串; p# U; c3 Y i8 P
9 ^8 T! A9 a D
, {* d1 j0 I% v0 O& ?
! @, S% n, c2 @ @
( L! R- G8 h/ C
' J' J* }; X0 N7 U*Linux下显示系统时间实例:
e3 w- r( l5 D) |+ `
7 ?# K* }- s! |8 G2 x" P! ?5 S; ?4 ?& Y3 e9 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;
- }
+ {0 B' ?' q" a M2 F- n 9 ?! M0 t8 g( f" {5 y
0 m4 n& Z2 U# i$ }
8 U+ a$ R3 L6 Z& u2 L
+ z: X% V6 f* @7 I
* |$ h5 a( L& U+ P- M. f, k( ], T- S# J/ l1 W& t8 d$ |
# ^- ?8 g3 A9 p8 g) v* n* C
|
|