4 Y9 c$ J9 m5 ~9 Y# 输入天、小时、分钟、秒的数量6 Z8 [9 g. J$ D
days = int(input("Enter number of Days: ")) ( t7 u" G6 q0 {2 R6 ^hours = int(input("Enter number of Hours: "))1 c& D! N1 u1 h" p% j2 H
minutes = int(input("Enter number of Minutes: "))% |0 s8 e; F: k
seconds = int(input("Enter number of Seconds: ")) ?0 D" s8 o+ }8 r9 }# W7 b - u$ B! u. l* n$ c7 t, @0 _( P# 计算1 F# F1 ]. u. i% e+ `2 Z6 R
total_seconds = days * SECONDS_PER_DAY + f7 a% C4 j& I3 a- S. J; t( G3 ytotal_seconds = total_seconds + ( hours * SECONDS_PER_HOUR) . \# {# q g( V$ Ktotal_seconds = total_seconds + ( minutes * SECONDS_PER_MINUTE) ( S6 t$ u0 L4 jtotal_seconds = total_seconds + seconds% l: n/ @- Q- H: y1 a) X
) t8 C2 J% L0 K1 a# Y8 y9 \# 结果 ) T" I: p2 J9 Q* q2 L/ G ~print("Total number of seconds: ","%d"%(total_seconds)) " q: ~- i; q, x0 e''' 2 W& Z# m3 ]0 \$ kEnter number of Days: 59 W2 n8 G- |0 m& Q5 H
Enter number of Hours: 36 7 v: {8 h% z! {/ K; B; S7 TEnter number of Minutes: 24- {6 Z" t3 M5 a' r
Enter number of Seconds: 15/ W) u6 o$ r- Z9 s7 B+ V7 m! V6 D6 D
Total number of seconds: 563055 # {$ d6 Q/ m) d+ l1 ]2 \* n. }1 w" `''' 3 J$ H8 u- w9 j) ?" s* u; @/ E
三、使用 Pandas 获取当前日期和时间! R9 u9 j/ g2 G1 ^0 N6 g7 x% P
import pandas as pd t) v/ ]: K9 B5 T0 {. w
print(pd.datetime.now()) # 2018-01-19 16:08:28.393553 9 ~6 {) w. h) g9 H8 hprint(pd.datetime.now().date()) # 2018-01-19 0 c* I( ^/ C V6 E6 ? \1 H8 tprint(pd.datetime.now().year) # 20181 d+ Y3 |) w: P$ Z& l
print(pd.datetime.now().month) # 1 ) s6 X& }8 X& F! Wprint(pd.datetime.now().day) # 19 a/ O7 d& [- J8 v' M( q: sprint(pd.datetime.now().hour) # 16 9 ]% x2 U5 V3 n, C/ pprint(pd.datetime.now().minute) # 8# G' S6 \0 s0 }) T+ r. R$ b
print(pd.datetime.now().second) # 287 c4 y$ q1 U7 }1 S+ G1 w
print(pd.datetime.now().microsecond) # 394553# h% \$ d5 h3 m) R
# X3 o# B$ h" i" R8 T
四、将字符串转换为日期时间对象 b V3 I: B$ |- d8 s) bfrom datetime import datetime : o) n" M K3 U; Y( w* Ffrom dateutil import parser# n* ^5 b) x c
]' D `9 c% I' \; N
d1 = "Jan 7 2015 1:15PM"0 `8 A0 B! a: i. T% t
d2 = "2015 Jan 7 1:33PM"! { R7 m- v( D" o* o; Y# p4 G Q
* n: O+ o1 \- N% N- [# If you know date format$ m1 m; C0 j$ B: i( c3 m& ]
date1 = datetime.strptime(d1, '%b %d %Y %I:%M%p')4 D; o; z& Z9 m9 G- s' L
print(type(date1)) # class 'datetime.datetime' 4 m3 I5 o' |" s# K. Mprint(date1) # 2015-01-07 13:15:003 n T! K4 N* ?) m: ^
% N! k/ E* U1 c8 c, v3 ]; K) L
# If you don't know date format* D" y; @' l3 [/ a
date2 = parser.parse(d2)0 @6 p+ I) d7 \
print(type(date2)) # class 'datetime.datetime'( \3 y3 m. A/ J' d& ]) t
print(date2) # 2015-01-07 13:33:00- Q) A5 n( J0 L0 v- j3 B$ P
( L* j; ^! F u- Y五、以毫秒为单位获取当前时间 7 G6 g, C* D* _+ }4 L" qimport time 9 ^. r7 D$ P5 y- A0 U9 r! k % S/ G A9 y% X/ h, _8 }1 Z' {milliseconds = int(round(time.time() * 1000)) # i8 o/ V" }$ h: f) }0 k* `print(milliseconds) # 15163642706509 ]3 p) j- N! o: s. S! v
' W! Q5 m& Y8 S
六、以 MST、EST、UTC、GMT 和 HST 获取当前日期时间 * V2 N( M3 Q+ p6 m1 x# e' ?from datetime import datetime ) u3 {- w9 M5 U7 x; lfrom pytz import timezone 2 w) w1 M5 h* F/ |. [: I1 |3 H4 j2 H# _
mst = timezone('MST') i. }6 @% d( Z% j0 R% k
print("Time in MST:", datetime.now(mst)) # Time in MST: 2017-01-19 06:06:14.495605-07:00 - ]: d' ^. X2 C2 N: D; k6 h# eest = timezone('EST')& D- ?4 }0 J3 l: {' n0 B' O
print("Time in EST:", datetime.now(est)) # Time in EST: 2017-01-19 08:06:14.496606-05:00 : x- P; \ K+ ^( W# Autc = timezone('UTC') : k2 w; G2 S; `# D( r0 p) ]print("Time in UTC:", datetime.now(utc)) # Time in UTC: 2017-01-19 13:06:14.496606+00:00 / @, o$ }' r- v$ k' \4 t( jgmt = timezone('GMT')5 ?1 `0 E( l9 G+ u2 A+ u% z
print("Time in GMT:", datetime.now(gmt)) # Time in GMT: 2017-01-19 13:06:14.496606+00:00 # C% r; Z' G! E9 M: bhst = timezone('HST') 3 x5 X, e, U! b# B* R+ Vprint("Time in HST:", datetime.now(hst)) # Time in HST: 2017-01-19 03:06:14.497606-10:00 ; E! v/ H* G; ~% F g% v( a9 y% }. ]( |0 w2 A" n
七、从给定的日期当中获取星期几6 C3 \7 n3 q6 i% U$ Z% @
import datetime $ R( i8 M; c$ V v * U* }2 l/ g1 o* k( \dayofweek = datetime.date(2010, 6, 16).strftime("%A") 5 R& f& V8 q- {8 G+ W9 ^print(dayofweek) # Wednesday- n) L# _# C. k, Q1 S& \
3 T; d+ a" G/ y
# weekday()方法: 0代表周一,6代表周日- G0 y! H3 ]9 T) G) x- W
print("weekday():", datetime.date(2010, 6, 16).weekday()) # weekday(): 2 ) t1 h/ G! I6 @* _ 2 U1 U$ ` r3 p$ ]( f$ @ c( Q8 x. A) `# isoweekday() 方法: 1代表周一,7代表周日: v, _; z# P8 O: C; V8 c) a9 A8 F1 t
print("isoweekday()", datetime.date(2010, 6, 16).isoweekday()) # isoweekday() 3 ' F! u( K" P7 p0 [" [. e1 _* X9 ?3 A$ ~5 V' \9 x. d
dayofweek = datetime.datetime.today().strftime("%A") * M7 V1 K& _% t W0 Z7 E: I fprint(dayofweek) # Friday8 u k9 G( j6 X
print("weekday():", datetime.datetime.today().weekday()) # weekday(): 4 ( n4 J7 O- h4 J' _4 n! vprint("isoweekday()", datetime.datetime.today().isoweekday()) # isoweekday(): 53 C2 ~8 b6 ~ J" @3 d; u% G, A
. { D3 L8 l% `, ?! w; [八、计算两个日期时间对象之间的时差 0 a. o1 l0 R* Q' c3 a6 ]import datetime 8 D% n/ X# f' {* Jfrom datetime import timedelta+ B' l K" D0 E/ l! s2 U
/ p4 P! U `' U) O5 k, Y; U) P
datetimeFormat = '%Y-%m-%d %H:%M:%S.%f'* G$ p( B1 a9 [4 ~( o Z: H
date1 = '2016-04-16 10:01:28.585' 5 s. U' F5 i2 Ydate2 = '2016-03-10 09:56:28.067'2 z( Q* C& |0 T, A4 V5 b# Y) J
diff = datetime.datetime.strptime(date1, datetimeFormat)\ # Y& d2 f {% y1 o - datetime.datetime.strptime(date2, datetimeFormat) 4 C* M6 R! B5 q# G" o 7 X% @$ H7 [: Gprint("Difference:", diff) # Difference: 37 days, 0:05:00.5180009 f; ^+ x4 g; T3 Y% |1 Q
print("Days:", diff.days) # Days: 37 6 ]6 B3 o3 q# m* ~print("Microseconds:", diff.microseconds) # Microseconds: 518000$ k$ e4 P" u" A& Q8 L. u' }
print("Seconds:", diff.seconds) # Seconds: 300. q0 V# r" Q3 n0 U2 h
0 R' r( x; g" h9 { g
九、将 5 分钟添加到 Unix 时间戳 7 A4 v4 K& r; @8 _2 W7 simport datetime& m1 R1 ^: c9 ~
import calendar# \, O( @" e8 R# A
' A- n% p2 y$ w" q
future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5) 8 V. u% y0 C: F# xprint(calendar.timegm(future.timetuple())) # 1621069619 & ^8 \& e4 J/ ` |! q, O& Z 5 ^4 g' o, j* \+ c& p9 R十、遍历一系列日期8 A# G+ E& L8 | r3 Q* E
import datetime& F/ B6 f4 o( p6 d V3 t9 n
& c9 b* }4 o3 D3 `/ C w9 Cstart = datetime.datetime.strptime("21-06-2020", "%d-%m-%Y")& L7 N9 i9 a% L/ c0 O' l2 r
end = datetime.datetime.strptime("05-07-2020", "%d-%m-%Y") ; Q K0 H! u7 r% n3 F" idate_generated = [start + datetime.timedelta(days=x) for x in range(0, (end - start).days)] 9 J0 K3 U% G- ^! j6 O* W) p: {: u( {: J, F" J4 K! u5 G3 ?% S' D
for date in date_generated:9 P, B* ?, ?7 S
print(date.strftime("%d-%m-%Y")) ) r3 B2 i0 R8 T) P ( \# J4 n' X; `9 o3 q8 r S十一、巴黎时间更改为纽约时间: W) f3 \- b+ i) I5 S/ f
import pendulum # z. U1 |9 w% T6 G* d/ f; r 4 |2 G7 G" b7 ], P1 |4 Xin_paris = pendulum.datetime(2016, 8, 7, 22, 24, 30, tz='Europe/Paris')9 L9 e' U" \9 g
print(in_paris) # 2016-08-07T22:24:30+02:00 8 O# \+ E9 {* m 8 w) D+ p# j2 P2 k3 Uin_us = in_paris.in_timezone('America/New_York') & S1 Q$ D3 B; S3 N* Dprint(in_us) # 2016-08-07T16:24:30-04:006 E, }% D0 b3 J- `# C8 f0 E
- M) U' j% L' X! K( O6 y- z% y十二、使用 Python 获得最后7个工作日% U; a8 h2 C" R' h% `. f: c
from datetime import date$ T+ x: c G+ q% y, s0 ?1 @3 s+ v
from datetime import timedelta( I. D+ z6 O' x- \8 A8 A
8 z* m) ~! G7 ?today = date.today()0 n8 V3 n9 w" [/ O
* f$ I$ A& [* f) S6 X
for i in range(7):1 h& z, w& ], x4 ~
d = today - timedelta(days=i) - D! }7 w8 R. [# C; G0 a% i% h if d.weekday() < 5:0 g$ s5 {! X" E. ^0 O9 D
print(d) % K# R; L6 I- N0 p% V/ T# V: f% Q3 m/ e8 }
十三、从今天的日期和一个人的生日推算年龄 2 f% N; ~0 v) F J, {from datetime import date 8 M( U! I5 A/ |4 L) G9 y$ o8 X0 w! N( A
0 O9 [, o$ j! ?3 rdef calculate_age(born):3 @' F7 D6 y7 \ v" A. Q; J
today = date.today()3 h$ Y5 e& W; n8 ]: Q* f
try:! Q" B3 {, O2 G5 ?( d2 l
birthday = born.replace(year=today.year) - T3 s D3 v: B: T2 C( [ except ValueError: / H; n) L: q: \8 X birthday = born.replace(year=today.year, month=born.month + 1, day=1) / k6 B3 W6 S1 |/ q; F if birthday > today:2 y( }% C) n, v# r
return today.year - born.year - 1 + k+ E- Y: A- O, t9 B else:" A' F- Z2 J5 k* v
return today.year - born.year " ^ d! q: ^/ T! V, t% d4 h; A! I 3 _7 _! X; i7 I' I " y0 T. @& r" qprint(calculate_age(date(2001, 3, 1)))9 E B* f$ [0 p6 Y u
$ @4 I' x ?' E, t& O, i
十四、获得本月的第一个星期二 . P. L0 d7 g7 ]2 eimport calendar 0 @. Q3 r0 ^0 c! R" [( x1 D: \! J' yfrom datetime import datetime. x3 r& ^; D2 E
/ I9 N5 f) q& N, C2 Cc = calendar.Calendar(firstweekday=calendar.SUNDAY) 5 H3 Y: s1 d0 E. l# P+ a, Omonthcal = c.monthdatescalendar(datetime.today().year, datetime.today().month)3 z0 a) }# K( c" `
#Python小白学习交流群:153708845 0 c; |6 [% p5 }8 L1 Btry:2 t+ }) `) g5 {0 I5 e' { O
tues = [day for week in monthcal for day in week if 9 _* K/ l$ r5 Q- |7 ~7 c" p4 u" N day.weekday() == calendar.TUESDAY and day.month == datetime.today().month][0]( H/ o# q7 r$ G- p8 I! _: ?" W
print(tues)4 E- O& y' u0 L1 s
except IndexError: ! y- r, R9 M; y4 q+ R print('No date found')) q6 a$ S& B- R
3 G- U& R3 E9 ~& E1 S" n# y) X
十五、将整数转换为日期对象% }' q5 B; L- ^9 Q2 ^
from datetime import datetime 9 _) r8 ], C* F5 B . x& ^* |7 v% B) J z# Si = 1545730073 R# y @3 F" M1 d
timestamp = datetime.fromtimestamp(i) & A, F" u2 }6 g( i9 k- b ( M: O" j; o Q; B# Eprint(timestamp) # 2018-12-25 14:57:53! {" w. H# z6 i! s8 y$ q
print(type(timestamp))$ n* U. e) G( D& r
9 c# F1 L# v4 J
十六、当前日期减去 N 天的天数 8 l# m. ?$ z& }from datetime import datetime, timedelta+ S+ B# e" \; m0 T