рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕рдордп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ

рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдХрдИ рд╕рд╡рд╛рд▓ рдФрд░ рдирд┐рд░реНрдгрдп рдЬрдорд╛ рд╣реЛ рдЧрдП рд╣реИрдВ, рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред


рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


MYSQL

рд╕рдордп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП mysql рдореЗрдВ рдХрдИ рдорд╛рдирдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ; рд╣рдо TIMESTAMP рдФрд░ DATETIME рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд░реВрдкрд╛рдВрддрд░рдг рдиреАрддрд┐ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЖрдЗрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:
рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдБ:
 create table xxxDate(ts TIMESTAMP NOT NULL, dt DATETIME NOT NULL); 

рд╣рдо рдорд╛рд╕реНрдХреЛ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдХреНрд╖реЗрддреНрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ (рдорд╛рд╕реНрдХреЛ рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдбреЗрд▓рд╛рдЗрдЯ рд╕реЗрд╡рд┐рдВрдЧ рдЯрд╛рдЗрдо рдирд╣реАрдВ рд╣реИ, рдФрд░ UTC + 4):
 set time_zone='Europe/Moscow'; 

рдХреНрд░рдорд╢рдГ рдЧрд░реНрдорд┐рдпреЛрдВ рдФрд░ рд╕рд░реНрджрд┐рдпреЛрдВ рдХреЗ рд╕рдордп рдХреЗ рд╕рд╛рде рджреЛ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдПрдВ:
 insert into xxxDate values('2012-06-10 15:08:05', '2012-06-10 15:08:05'); insert into xxxDate values('2012-12-10 15:08:05', '2012-12-10 15:08:05'); 

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЗрди рддрд╛рд░реАрдЦреЛрдВ рдХрд╛ рдЪрдпрди рдХреНрдпрд╛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:
 select * from xxxDate; +---------------------+---------------------+ | ts | dt | +---------------------+---------------------+ | 2012-06-10 15:08:05 | 2012-06-10 15:08:05 | | 2012-12-10 15:08:05 | 2012-12-10 15:08:05 | +---------------------+---------------------+ select UNIX_TIMESTAMP(ts), UNIX_TIMESTAMP(dt) from xxxDate; +--------------------+--------------------+ | UNIX_TIMESTAMP(ts) | UNIX_TIMESTAMP(dt) | +--------------------+--------------------+ | 1339326485 | 1339326485 | | 1355137685 | 1355137685 | +--------------------+--------------------+ 

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рджреЛрдиреЛрдВ рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рдорд╛рди рд╕рдорд╛рди рд╣реИрдВ, рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ UNIX_TIMESTAMP рдлрд╝рдВрдХреНрд╢рди рд╡рд░реНрддрдорд╛рди рдЬрд╝реЛрди рдореЗрдВ рддрд░реНрдХ рдХреЗ рдореВрд▓реНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ UTC рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╕рдорд╛рди рдорд╛рди рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдорд╛рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ Mon, 10 Dec 2012 11:08:05 UTC ред
рдЕрдм рд╣рдо рд▓рдВрджрди рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ!
 set time_zone='Europe/London'; select * from xxxDate; +---------------------+---------------------+ | ts | dt | +---------------------+---------------------+ | 2012-06-10 12:08:05 | 2012-06-10 15:08:05 | | 2012-12-10 11:08:05 | 2012-12-10 15:08:05 | +---------------------+---------------------+ 

рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреБрдЫ рднреА рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбрд╛рд▓реЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, TIMESTAMP , рдпрд╣ UTC рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд╡рд░реНрддрдорд╛рди рдЬрд╝реЛрди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдбреЗрдЯрд╛рдмреЗрд╕ рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдЬрд╝реЛрди рдореЗрдВ рдЗрд╕ рд╕рдордп рдХрд╛ рдорд╛рди рджреЗрддрд╛ рд╣реИред DATETIME рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рди рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВред
рдЕрдм рдЖрдЗрдП рдореЙрд╕реНрдХреЛ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред Ts рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреЗрд╕реНрдЯ рдХрд░рддреЗ рд╕рдордп UTC рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд▓рд╛рддреЗ рд╕рдордп, рдЙрдиреНрд╣реЗрдВ 15 рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдХреНрд╖реЗрддреНрд░ (рдЬреИрд╕рд╛ рдХрд┐ рд▓рдВрджрди рдХреЗ рд▓рд┐рдП) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдорд╛рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЬрдм UNIX_TIMESTAMP рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╡реЗ рдмрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЧрдП рдереЗред
рдЕрдм рд▓рдВрджрди рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо:
 select UNIX_TIMESTAMP(ts), UNIX_TIMESTAMP(dt) from xxxDate; +--------------------+--------------------+ | UNIX_TIMESTAMP(ts) | UNIX_TIMESTAMP(dt) | +--------------------+--------------------+ | 1339326485 | 1339337285 | // 14h (dt) | 1355137685 | 1355152085 | // 15h (dt) +--------------------+--------------------+ 

Ts рдорд╛рди рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВ, рдФрд░ dt рдорд╛рди рдХреЛ рд╡рд░реНрддрдорд╛рди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЧрд░реНрдореА рдХрд╛ рд╕рдордп (рдкрд╣рд▓рд╛ рд░рд┐рдХреЙрд░реНрдб) 1339337285 = Sun, 10 Jun 2012 14:08:05 GMT рдФрд░ рд╕рд░реНрджрд┐рдпреЛрдВ рдХрд╛ рд╕рдордп (рдирд┐рдЪрд▓рд╛ рд░рд┐рдХреЙрд░реНрдб) 1355152085 = Mon, 10 Dec 2012 15:08:05 GMT ред
рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреВрдЯреАрд╕реА рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
 set time_zone='UTC'; select * from xxxDate; +---------------------+---------------------+ | ts | dt | +---------------------+---------------------+ | 2012-06-10 11:08:05 | 2012-06-10 15:08:05 | | 2012-12-10 11:08:05 | 2012-12-10 15:08:05 | +---------------------+---------------------+ select UNIX_TIMESTAMP(ts), UNIX_TIMESTAMP(dt) from xxxDate; +--------------------+--------------------+ | UNIX_TIMESTAMP(ts) | UNIX_TIMESTAMP(dt) | +--------------------+--------------------+ | 1339326485 | 1339340885 | // 15h (dt) | 1355137685 | 1355152085 | // 15h (dt) +--------------------+--------------------+ 

рд╕рдм рдХреБрдЫ рдкрд┐рдЫрд▓реЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реИ, ts рдорд╛рди рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВ, dt рдорд╛рди рд╡рд░реНрддрдорд╛рди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рднреА рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ ( 1339340885 = Sun, 10 Jun 2012 15:08:05 GMT; 1355152085 = Mon, 10 Dec 2012 15:08:05 GMT ); ред
рдирд┐рд╖реНрдХрд░реНрд╖:


SQLite3

Sqlite3 рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред Sqlite рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рдордп рдХреА рдмрдЪрдд рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рдордп, рдПрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░ рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпреЗ рд╡рд┐рдЪрд╛рд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рд╕реНрдерд╛рдиреАрдп рд╕рдордп рдФрд░ utc рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ sqlite рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, CURRENT_TIMESTAMP UTC рдкрд░ рд╕реЗрдЯ рд╣реИред
 $ date Mon Dec 10 22:05:50 MSK 2012 $ sqlite3 sqlite> select CURRENT_TIMESTAMP; 2012-12-10 18:06:05 sqlite> select datetime(CURRENT_TIMESTAMP, 'localtime'); 2012-12-10 22:06:35 

рдЗрд╕рд▓рд┐рдП, рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдпреВрдирд┐рдХреНрд╕ рдФрд░ рдпреВрдирд┐рдХ рдпреБрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рддрд▓рд╛рд╢ рди рдХрд░реЗрдВред
рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп:
 select strftime('%s', CURRENT_TIMESTAMP); 1355162582 select datetime(1355152085, 'unixepoch'); 2012-12-10 15:08:05 

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдордп рдХреИрд╕реЗ рджреЗрдЦрддрд╛ рд╣реИ


рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛рдЯрд╛рдЗрдо рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдордп рдореЗрдВ рднреНрд░рдорд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рджреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ, рддреЛ, рдЬрд╝реЛрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╣реА рд╕рдордп рд░реЗрдЦрд╛ рдХреЛ рджреЗрдЦрдХрд░, рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВрдЧреЗред рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдХрдбрд╝реА рд╣реИ ред

рд╕рдордп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реА-рдлрд╝рдВрдХреНрд╢рдВрд╕


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЧреНрд▓рд┐рдмрдХ рдореЗрдВ рд╕рдордп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ tm (рдмрд╛рдж рдореЗрдВ рдЯреВрдЯреЗ-рдлреВрдЯреЗ рд╕рдордп рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд) рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди (рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдХрд╛рд░рдг) рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЕрдиреНрдп рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдЖрдЗрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:
 Function: struct tm * localtime_r(const time_t *time, struct tm *resultp) 

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╝реЛрди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╡реНрдпрдХреНрдд рдХрд┐рдП рдЧрдП рдЯреВрдЯреЗ-рдлреВрдЯреЗ рд╕рдордп рдХреЛ рд╕рд░рд▓ рд╕рдордп рджреЗрддрд╛ рд╣реИред
  time_t t = 1339326485; // 2012-06-10 11:08:05 (UTC) struct tm bdt; localtime_r (&t, &bdt); cout << bdt.tm_hour << endl; cout << bdt.tm_isdst << endl; cout << bdt.tm_zone << endl; 

рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬрд╝реЛрдирдпреВрдЯреАрд╕реАрдпреВрд░реЛрдк / рдорд╛рд╕реНрдХреЛрдпреВрд░реЛрдк / рд▓рдВрджрди
рдШрдВрдЯреЗ рдХрд╛ рдЙрддреНрдкрд╛рджрди111512
isdst рдЖрдЙрдЯрдкреБрдЯ001
рдЬрд╝реЛрди рдЖрдЙрдЯрдкреБрдЯрдпреВрдЯреАрд╕реАрдПрдордПрд╕рдХреЗBST

  time_t t = 1355137685; // 2012-12-10 11:08:05 (UTC) 

рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬрд╝реЛрдирдпреВрдЯреАрд╕реАрдпреВрд░реЛрдк / рдорд╛рд╕реНрдХреЛрдпреВрд░реЛрдк / рд▓рдВрджрди
рдШрдВрдЯреЗ рдХрд╛ рдЙрддреНрдкрд╛рджрди111511
isdst рдЖрдЙрдЯрдкреБрдЯ000
рдЬрд╝реЛрди рдЖрдЙрдЯрдкреБрдЯрдпреВрдЯреАрд╕реАрдПрдордПрд╕рдХреЗрдЬреАрдПрдордЯреА

 Function: struct tm * gmtime_r(const time_t *time, struct tm *resultp) 

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд╖реЗрддреНрд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ UTC рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  time_t t = 1339326485; // 2012-06-10 11:08:05 (UTC) struct tm bdt; gmtime_r (&t, &bdt); cout << bdt.tm_hour << endl; cout << bdt.tm_isdst << endl; cout << bdt.tm_zone << endl; 

рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬрд╝реЛрдирдпреВрдЯреАрд╕реАрдпреВрд░реЛрдк / рдорд╛рд╕реНрдХреЛрдпреВрд░реЛрдк / рд▓рдВрджрди
рдШрдВрдЯреЗ рдХрд╛ рдЙрддреНрдкрд╛рджрди111111
isdst рдЖрдЙрдЯрдкреБрдЯ000
рдЬрд╝реЛрди рдЖрдЙрдЯрдкреБрдЯрдЬреАрдПрдордЯреАрдЬреАрдПрдордЯреАрдЬреАрдПрдордЯреА

  time_t t = 1355137685; // 2012-12-10 11:08:05 (UTC) 

рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬрд╝реЛрдирдпреВрдЯреАрд╕реАрдпреВрд░реЛрдк / рдорд╛рд╕реНрдХреЛрдпреВрд░реЛрдк / рд▓рдВрджрди
рдШрдВрдЯреЗ рдХрд╛ рдЙрддреНрдкрд╛рджрди111111
isdst рдЖрдЙрдЯрдкреБрдЯ000
рдЬрд╝реЛрди рдЖрдЙрдЯрдкреБрдЯрдЬреАрдПрдордЯреАрдЬреАрдПрдордЯреАрдЬреАрдПрдордЯреА

 Function: time_t mktime(struct tm *brokentime) 

( рд╕рдордпрдмрджреНрдзрддрд╛ рдХрд╛ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА, рд▓реЗрдХрд┐рди рджреБрд░реНрд▓рдн)
рдЯреВрдЯреЗ-рдлреВрдЯреЗ рд╕рдордп рдХреЛ рд╕рд░рд▓ рд╕рдордп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдзреНрдпрд╛рди: рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдХреНрд╖реЗрддреНрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
Tm_zone рдлрд╝реАрд▓реНрдб рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдордп рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпреВрдЯреАрд╕реА рдореЗрдВ рд╕рдордп рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИред
  struct tm bdt; bdt.tm_sec = 5; // 05 sec bdt.tm_min = 8; // 08 min bdt.tm_hour = 11; // 11 h bdt.tm_mday = 10; // 10 bdt.tm_mon = 5; // 6th mon - Jun bdt.tm_year = 112;// 2012 - 1900 bdt.tm_wday = 0; // ignored bdt.tm_yday = 0; // ignored bdt.tm_isdst= 0; bdt.tm_gmtoff= 0; bdt.tm_zone = "UTC"; time_t t = mktime(&bdt); cout << t << endl; cout << bdt.tm_hour << endl; cout << bdt.tm_isdst << endl; cout << bdt.tm_gmtoff << endl; cout << bdt.tm_zone << endl; 

рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬрд╝реЛрдирдпреВрдЯреАрд╕реАрдпреВрд░реЛрдк / рдорд╛рд╕реНрдХреЛрдпреВрд░реЛрдк / рд▓рдВрджрди
рдкрд┐рди рдЯреА1339326485 (рд╕реВрд░реНрдп, 10 рдЬреВрди 2012 11:08:05 GMT)1339312085 (рд╕реВрд░реНрдп, 10 рдЬреВрди 2012 07:08:05 GMT)1339326485 (рд╕реВрд░реНрдп, 10 рдЬреВрди 2012 11:08:05 GMT)
рдШрдВрдЯреЗ рдХрд╛ рдЙрддреНрдкрд╛рджрди111112
isdst рдЖрдЙрдЯрдкреБрдЯ001
gmtoff рдЖрдЙрдЯрдкреБрдЯ014400 (4 * 60 * 60)3600 (1 * 60 * 60)
рдЬрд╝реЛрди рдЖрдЙрдЯрдкреБрдЯрдпреВрдЯреАрд╕реАрдПрдордПрд╕рдХреЗBST

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ tm_hour рдФрд░ tm_isdst рдлрд╝реАрд▓реНрдб рд▓рдВрджрди рдХреЗ рд▓рд┐рдП рдмрджрд▓ рдЧрдП рд╣реИрдВ, рдпрд╣ рдЯреВрдЯ-рдбрд╛рдЙрди рдЯрд╛рдЗрдо рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
рдЕрдм рдХреЗ рд▓рд┐рдП
 bdt.tm_mon = 11; // 11th mon - Dec 

рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬрд╝реЛрдирдпреВрдЯреАрд╕реАрдпреВрд░реЛрдк / рдорд╛рд╕реНрдХреЛрдпреВрд░реЛрдк / рд▓рдВрджрди
рдкрд┐рди рдЯреА1355137685 (рд╕реЛрдо, 10 рджрд┐рд╕рдВрдмрд░ 2012 11:08:05 GMT)1355123285 (рд╕реЛрдо, 10 рджрд┐рд╕рдВрдмрд░ 2012 07:08:05 GMT)1355137685 (рд╕реЛрдо, 10 рджрд┐рд╕рдВрдмрд░ 2012 11:08:05 GMT)
рдШрдВрдЯреЗ рдХрд╛ рдЙрддреНрдкрд╛рджрди111111
isdst рдЖрдЙрдЯрдкреБрдЯ000
gmtoff рдЖрдЙрдЯрдкреБрдЯ014400 (4 * 60 * 60)0
рдЬрд╝реЛрди рдЖрдЙрдЯрдкреБрдЯрдпреВрдЯреАрд╕реАрдПрдордПрд╕рдХреЗрдЬреАрдПрдордЯреА

 Function: time_t timegm(struct tm *brokentime) 

рдпрд╣ рдпреВрдЯреАрд╕реА рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬрд╝реЛрдирдпреВрдЯреАрд╕реАрдпреВрд░реЛрдк / рдорд╛рд╕реНрдХреЛрдпреВрд░реЛрдк / рд▓рдВрджрди
рдкрд┐рди рдЯреА1339326485 (рд╕реВрд░реНрдп, 10 рдЬреВрди 2012 11:08:05 GMT)1339326485 (рд╕реВрд░реНрдп, 10 рдЬреВрди 2012 11:08:05 GMT)1339326485 (рд╕реВрд░реНрдп, 10 рдЬреВрди 2012 11:08:05 GMT)
рдШрдВрдЯреЗ рдХрд╛ рдЙрддреНрдкрд╛рджрди111111
isdst рдЖрдЙрдЯрдкреБрдЯ000
gmtoff рдЖрдЙрдЯрдкреБрдЯ000
рдЬрд╝реЛрди рдЖрдЙрдЯрдкреБрдЯрдЬреАрдПрдордЯреАрдЬреАрдПрдордЯреАрдЬреАрдПрдордЯреА
рдЕрдм рдХреЗ рд▓рд┐рдП
 bdt.tm_mon = 11; // 11th mon - Dec 

рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬрд╝реЛрдирдпреВрдЯреАрд╕реАрдпреВрд░реЛрдк / рдорд╛рд╕реНрдХреЛрдпреВрд░реЛрдк / рд▓рдВрджрди
рдкрд┐рди рдЯреА1355137685 (рд╕реЛрдо, 10 рджрд┐рд╕рдВрдмрд░ 2012 11:08:05 GMT)1355137685 (рд╕реЛрдо, 10 рджрд┐рд╕рдВрдмрд░ 2012 11:08:05 GMT)1355137685 (рд╕реЛрдо, 10 рджрд┐рд╕рдВрдмрд░ 2012 11:08:05 GMT)
рдШрдВрдЯреЗ рдХрд╛ рдЙрддреНрдкрд╛рджрди111111
isdst рдЖрдЙрдЯрдкреБрдЯ000
gmtoff рдЖрдЙрдЯрдкреБрдЯ000
рдЬрд╝реЛрди рдЖрдЙрдЯрдкреБрдЯрдЬреАрдПрдордЯреАрдЬреАрдПрдордЯреАрдЬреАрдПрдордЯреА

рдирд┐рд╖реНрдХрд░реНрд╖:
рдпрджрд┐ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ timelocal/localtime рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрджрд┐ рдЖрдк рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ timegm/gmtime рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд░реНрд╡рд░ рдкрд░ UTC рдЬрд╝реЛрди рд╕реЗрдЯ рдХрд░реЗрдВ, рдпрджрд┐ рдЖрдкрдХрд╛ рдХреЛрдИ рд╕рд╣рдХрд░реНрдореА рдпрд╛ рдХрд┐рд╕реА рддреГрддреАрдп-рдкрдХреНрд╖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ * рд╕реНрдерд╛рдиреАрдп * рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░, рдпреВрдЯреАрд╕реА рдореЗрдВ рд╕рдордп рдХреЗ рд╕рд╛рде рд╕реНрдЯреЛрд░ рдФрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╡рд╣ рдЕрдкрдирд╛ рдХреНрд╖реЗрддреНрд░ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рддрд┐рдерд┐рдпрд╛рдВ рд╕рд╣реА рд░рд╣реЗрдВрдЧреАред

рдЯрд┐рдкреНрдкрдгреА


рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛

рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдмрд╣рд╕-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рддрд░рдг рдФрд░ рд▓реЛрд╣реЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

LEAP рд╕реЗрдХрдВрдб

рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рд▓реАрдк рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИрдВред рдЖрдк рдЕрдкрдиреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ mysql рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ ред

рдФрд░ рдЕрдзрд┐рдХ

Source: https://habr.com/ru/post/In162341/


All Articles