|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
6 e6 X# U1 g3 {( B; x
Linux高级编程——时间编程 2 ?$ M m7 j" w. u W
% V/ J$ L( g) `6 N4 Z" G" D/ V
2 n* J. t2 s J3 B6 g1 时间类型
3 b' h& L: N5 o$ e& g
v/ p& [$ |2 \: A o- T; U6 j' r
& ^( ~7 j, f& R. C(1) 世界标准世界(格林威治时间): [6 V( N) @" M' b6 x
! t0 N% K+ S3 S) }5 C" B# R5 A" I F6 Q& f/ U" M# k$ F/ E
(2) 日历时间(1970年1月1日0时)——到此时经历的秒数
1 Z: ^( x1 b7 \$ z" `8 v& q
5 T( M0 Q9 Z+ D' W" W4 D) O
R5 j' q. k; c0 P& D
, ~& H: z+ `$ M
5 D2 E! W U9 q2 C. e! B& U2 时间获取
( k$ `5 c; _6 O) R
& I/ z+ e1 E! F" k2 A* G# k9 Q9 U! Z3 c H8 r$ w1 H
#include<time.h>
2 m/ t: ]6 u z, G, b- h% D: j* r/ J
& _3 x) P1 h% r. k
- A6 b% k' A" ]( k9 [, stime_ttime(time_t *tloc)——获取日历时间
" W4 F# b8 U) H' {/ v4 P" w
( h* _5 U1 t: d4 Q' Z
! u- v' r3 d: s/ G, E+ S/*typedef longtime_t*/
. @9 {1 u: k9 B5 x& v8 X7 |( u+ Z3 s3 E$ a( K2 l
( s: Q' y6 f. P; E N
5 `- n' f1 D! @% @. y0 W. g
3 c$ @4 M$ T8 q2 Y3 ]0 P2 k3 时间转化/ ^( f# P3 z( w+ q
& H, A& T7 {; b, H& ]2 b- p, l u; j
struct tm*gmtime(const time_t *timep)
* [' H& j. n* ?
, @/ M0 \5 ]4 K/ Q! p( P- L9 q
8 ^, C. \$ u9 j' o: q——将日历时间转化为格林威治标准时间,并保存至TM结构中& O* Q6 [1 [ G* z6 r
( y* o3 C# P( y5 b3 @4 `
. i0 a, X4 L6 t9 {) n% t7 [5 astruct tm*localtime(const time_t *timep)
0 g* Z1 C$ ?! |* L0 U) O9 K- Q& l- J: l
6 ^4 I0 @1 S o2 g' c, I* X
——将日历时间转化为本地时间,并保存至TM结构中 X3 v1 ~8 [* o* W0 F& @! o3 t! _* w
: E0 l& w. H6 l4 O' f
) j! X. C" R2 x* q& I9 r
0 K( T8 ?7 z# w2 p: w4 G
* k6 S- r* J$ N! j7 ~- _# h4 时间保存
. r9 e* ]+ Y; e! X/ ]7 H
! N+ H( q& A0 u! M) v: n! Z6 D+ O& v, ]6 b6 p: Z0 b; ^
- 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;//日光节约时间
- };
! Y; P; r8 M1 l6 R2 H* A- G : ` t+ j' R& I( L. U+ H1 [# ~
! P" t1 x. k% o. ?& c8 @9 t
+ ]9 Y; H% K- }% |" ~0 S9 h' |# ^# p, l2 m
- Q2 J! q" P' h7 ~2 F5 K& n8 a
5 时间显示
2 K. T, U, Z+ C- W' I, T' P q. x! `, t
, ^. K& L5 U# H6 I9 {$ L/ ochar *asctime(conststruct tm* tm)
- l7 r h& _1 R7 a6 K/ Q# M5 a( K; z, {# O& J9 G" ~4 G
/ s* G7 ^ _0 u* d0 E/ e
——将tm格式的时间转化为字符串2 i1 i0 J0 z+ j+ r
X4 M' S6 ^0 J* |7 o3 A( v. J- K$ [
6 V) \7 x2 K' c& ~+ a" a" p( y! |
char*ctime(const time_t *timep)
/ z7 d' l) _" u W, }; }2 \
* J* J7 x* m. P+ @. H- W) I0 e, L
$ Z; F2 K" A. B: `# k& r——将日历时间转化为字符串
4 N2 H- w6 q) g4 G, ~+ g* d" u8 r: i( Z0 }8 Z
: ~/ `3 s4 ?9 H4 n
* z4 f6 c. ~2 I* D0 A% Z* D
: T$ e2 \4 @) Q! s
9 k: }" r$ Z0 ]5 ?1 {" d) Z% a*Linux下显示系统时间实例:
& T7 {+ h9 a5 x) |' \
+ P' L8 N" e# A8 ?' r6 t6 q, c1 x1 R8 J
- #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 y0 A8 Z# u4 |+ K7 i4 q5 f
* C9 O/ z; v9 K4 j& w& K; f$ P! R& {) }
4 @* { U( ^; f+ e1 k; V& D
; e6 t$ e: D7 A- o, t& j! s
9 N7 _( h0 i. f) V5 T7 Z
$ u2 d1 j5 ^2 _# I: O. g
+ L# I% a5 K, s) a& l: a |
|