|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
$ b1 X% `6 N) E6 h" P) H
Linux高级编程——时间编程
+ X8 x3 K) ? ~' O" A4 C
+ W$ c3 Z9 ^ i5 j2 F, }! k1 O
) V/ v! Q3 X* q- i, q( D1 时间类型
T) m, t' S% n* D2 e- ~
* m! E3 N0 M4 P" a9 _+ h8 X, W7 t: [0 m
(1) 世界标准世界(格林威治时间)$ I( C7 z) V6 Z' T
) l, t: i9 o" c# d
8 d( a+ }9 \/ P1 U
(2) 日历时间(1970年1月1日0时)——到此时经历的秒数* I; }% q- ~" A
1 f$ Z" r* e h: U7 d0 w: S* O$ h
' B% Y+ C. A- Q5 V w
1 p# [( k+ U# s3 O: N5 o% ^
% q# {4 z- ~4 q) ~. W2 时间获取! X' x2 f& R: W: r/ }. L M5 i& v! ?
- y( S1 F& X, j X& f) t! W( p/ N' D* l
6 r. t# q% x& x- U8 r% y( `/ V( e
#include<time.h>, B; a: p1 u) I) e
! _( Q9 }/ K8 B
3 v, m: d1 S, V3 U
time_ttime(time_t *tloc)——获取日历时间/ c, M8 D9 f9 K- L0 N% {, j. t$ u
: d( C' k0 ~4 v" d( l
: |- K- y+ g9 @5 `' {* t/ \& Y/*typedef longtime_t*/
8 m5 Z# } L; F+ i* H' F
4 q) k" l- p: q8 Z+ {/ O6 e6 g: e; b' I# S3 [# S, I
( ~7 [- n; }" a; v1 A1 Y9 K3 x
3 s& J+ m. u" d3 b" T& I: S3 时间转化
' W; n/ O R# f
% N2 N& b$ O+ n2 ~
0 l# ^6 K4 t: O' s+ d. \struct tm*gmtime(const time_t *timep)
9 b8 C/ D" A3 _- M @3 y4 B
) F4 o/ ~ `* d- U. x8 h! a. n
5 u9 b; ^( D n6 `——将日历时间转化为格林威治标准时间,并保存至TM结构中
+ W0 T5 E" ]% r* R! q6 ^+ V& U/ n4 I1 p" T" S
7 R6 c' S1 v; B l( i0 Lstruct tm*localtime(const time_t *timep)4 y/ o8 N- k6 x, v6 `: P
/ d! W H" f; a/ d- G4 Z& o- @3 R, E* [- N/ r. W5 ~) K
——将日历时间转化为本地时间,并保存至TM结构中2 m) u0 w0 a9 R% `2 Q4 i8 |" Y
$ y& P9 T2 L. F9 c R8 N* \
; v% Z+ ~5 F5 t+ _ W8 d0 G1 N6 V. C5 ^
( V' u X- i- D* V: F7 ^4 时间保存
. T% h1 C7 m# K! z: m: U- ~" P$ N+ c' H x
N$ y# x+ l# S/ Z& j- 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;//日光节约时间
- };# L, h/ L, k/ v3 w
3 E6 t6 Z: c1 _1 g. h% k) W6 Y7 ?6 a4 M' L* i! Y; X+ D4 i
/ {0 g% f$ ?5 V( Q) s
- I1 r9 u* @& m( h
7 J6 f2 a; _" W$ A8 u4 O
5 时间显示 T4 i H, o: v2 [: `
9 K, A2 t) |- K0 o
6 k; q9 G& {7 e \- z9 W* kchar *asctime(conststruct tm* tm)
' v: _$ P/ @' y6 t! a) @! }4 |8 M4 r9 K" o
9 G- L, K8 j; Z* l$ t |——将tm格式的时间转化为字符串9 v2 {. v7 S$ y0 B
( [3 s! C4 i/ j
" J7 {2 j1 W6 i/ w. f# _+ }
char*ctime(const time_t *timep)3 Z& J4 }3 y+ g; J- H6 U
9 N5 F7 [, S( F' R
. `- k' g6 D; b; ^) W5 z' J——将日历时间转化为字符串- |$ y$ W! a/ C9 t* A' `4 v& Y k
5 G) a2 a* M4 g. ]2 Y. k
& _9 G0 O9 E& @: \8 l
3 M3 r( ^: `/ v1 T* ^$ R# j4 L
- z$ [- C/ l( p1 l! b- [: X" A. F8 F. t+ U% F
*Linux下显示系统时间实例: / z) h) Z, W: I0 r" @) }
1 N8 g8 X7 y+ l6 y6 \
4 t: G+ g) k: N8 R
- #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;
- }7 ?5 X# `4 Z2 Y1 p2 s* K
+ K, Q% Q) n$ t! U! b. P9 ^
7 M' G' E5 b8 ?" |/ P$ u3 @6 Z9 z0 f" r, N# N) T& x+ U! e
0 n" G% [, M/ C0 Z0 j7 j
/ I, g6 u7 }% m3 \, r3 P, v) ]3 O* F( D6 p5 i- }. G" v* B6 D
+ J# G8 A7 b& a+ L |
|