数学建模社区-数学中国

标题: Python处理日期方法大全、三十种方法 [打印本页]

作者: 2744557306    时间: 2024-3-22 11:30
标题: Python处理日期方法大全、三十种方法
使用 time 模块展示当前日期和时间
6 e* U5 C/ i! ~) }import time
) ~' R7 `! w9 B1 ~from time import gmtime, strftime: j& j$ M: C- l( }
) ^5 p9 m# y/ t9 X: x6 m# U# F' P: Z
t = time.localtime()  * k2 k0 H- g0 N% C% E
print (time.asctime(t))  # Sun May 7 09:30:37 2017
* B& Q. U8 T. j/ v* M! F7 Kprint(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()))  # Sun, 07 May 2017 04:00:37 +0000
; t. T4 R/ ~  [3 U8 @5 Y$ Oprint(strftime("%A", gmtime()))  # Sunday
, S. R/ w, _* W( Yprint(strftime("%D", gmtime()))  # 05/07/17
* o, E3 R- g, O2 O! z: j$ Q" gprint(strftime("%B", gmtime()))  # May
# f- U  a% Y+ n7 I8 z" sprint(strftime("%y", gmtime()))  # 17
+ R9 K6 c7 X' I7 @7 i- f
  C' H% I( v  t# ]+ r. x# Convert seconds into GMT date5 E! k, |! s# I5 P7 Q
print(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime(1234567890)))  # Fri, 13 Feb 2009 23:31:30 +00003 r  T- p# O& N. Y+ Z/ N
  r( \1 C* M/ v. p$ R
二、将天、小时、分钟转换为秒
  h) N) D: V- k+ s# {) x' G( cSECONDS_PER_MINUTE = 60
8 v4 s$ j8 L% h. H: rSECONDS_PER_HOUR = 3600, r* h! C/ c& H
SECONDS_PER_DAY = 86400
5 S( o. |$ D! U: n! X6 u5 P( _3 r% u
# 输入天、小时、分钟、秒的数量
, q3 D' X9 _* A% ~5 Hdays = int(input("Enter number of Days: "))
  H, K) J& O9 ~2 W9 u- yhours = int(input("Enter number of Hours: "))5 j% F# B$ U  |5 s
minutes = int(input("Enter number of Minutes: "))
$ ?9 A( ^) q9 B9 w8 U7 Lseconds = int(input("Enter number of Seconds: "))( f* I/ A$ M7 ?" }

* B3 r; [# B  o# 计算
& A* I6 K  X! Q+ O, Z: F0 Ytotal_seconds = days * SECONDS_PER_DAY
8 T0 z. X+ \9 E0 S+ f3 F5 t1 dtotal_seconds = total_seconds + ( hours * SECONDS_PER_HOUR)0 ]% t  N3 t9 [( v
total_seconds = total_seconds + ( minutes * SECONDS_PER_MINUTE)- d2 ~. t1 P& Q6 T8 ^+ y) ^, m
total_seconds = total_seconds + seconds
- Q& F2 F! g  {6 H! x& w8 J3 @: X) J
# 结果& r# g0 M& S2 m% s9 {9 s
print("Total number of seconds: ","%d"%(total_seconds))
2 P; d, S$ n; H& j$ P'''
) O7 \( Z' k7 T2 e) j9 Y/ O1 e% qEnter number of Days: 5
1 x; r: @% r7 s. L7 X& mEnter number of Hours: 36
8 M: s' w7 j' a0 HEnter number of Minutes: 24  }' l" F3 Z" S; u4 u, P( _
Enter number of Seconds: 15
5 }/ r  N! B1 K& R: ATotal number of seconds: 563055
. d0 [: f& F: `- K- m( D' @) L'''. V0 L% G8 i8 ]
' c' s: y8 Z5 {
三、使用 Pandas 获取当前日期和时间
$ L  t. X5 y1 k; K# mimport pandas as pd
, F* b2 d) g! d2 I7 u- bprint(pd.datetime.now())  # 2018-01-19 16:08:28.393553% e! b* Q: w7 {- J" m* c; Z
print(pd.datetime.now().date())  # 2018-01-19
7 {8 T, H8 J7 w) z0 o& ^# fprint(pd.datetime.now().year)  # 2018" h+ G1 R; `* @0 c2 Q. i
print(pd.datetime.now().month)  # 1- z1 Q. Y9 U! w
print(pd.datetime.now().day)  # 192 o+ `4 E$ C8 I/ V( L# E) \1 {
print(pd.datetime.now().hour)  # 16
% i' t2 d7 v) l, y% a. Xprint(pd.datetime.now().minute)  # 82 r6 w7 L  z* l, i1 l
print(pd.datetime.now().second)  # 28
' {' G( H+ O" i3 hprint(pd.datetime.now().microsecond)  # 394553/ Q$ @1 J6 a3 G, G6 ?; ~

0 m  x3 n, _& C% p% Z四、将字符串转换为日期时间对象
. ?$ H, y. F9 \- M( efrom datetime import datetime) I$ l+ P* O& j6 B  Y6 ^2 e; i
from dateutil import parser' ^" V" a) S9 t& d% e

$ R7 m, {/ }8 M+ l3 d1 W, Zd1 = "Jan 7 2015  1:15PM"
$ O2 t* `9 `5 U7 k1 ]d2 = "2015 Jan 7  1:33PM"
' @. h2 D) d% G4 G2 k) O9 \! R% z: @* @& O# ^
# If you know date format! z& r& q/ L0 i0 d/ B& u
date1 = datetime.strptime(d1, '%b %d %Y %I:%M%p')6 S5 Y$ k0 O/ n  J
print(type(date1))  # class 'datetime.datetime'
, E  P: D1 i" o0 S$ }' Pprint(date1)  # 2015-01-07 13:15:00
0 m! x3 f+ E8 h) j9 f6 d* F/ H' d
# If you don't know date format
! c* z) b7 ^; w. Kdate2 = parser.parse(d2)6 z9 q* F' S+ y9 k) J
print(type(date2))  # class 'datetime.datetime'
7 x% A9 o9 e' L" q. M. d- ?print(date2)  # 2015-01-07 13:33:00. \* C) T, ?$ G1 P
2 A5 H; @" m: S" p1 [' u
五、以毫秒为单位获取当前时间0 R5 f4 S. a( p* D
import time) \% v6 L3 c5 n3 d. T6 _1 q, e

6 Q5 a" |8 ]9 Rmilliseconds = int(round(time.time() * 1000)), A. t7 Y9 S% c& B; v9 q
print(milliseconds)  # 1516364270650! C$ m: O' R4 J2 c6 [3 Z

6 N3 @. f4 M& ~2 k六、以 MST、EST、UTC、GMT 和 HST 获取当前日期时间
  I5 j2 t1 _8 R* S/ j, Jfrom datetime import datetime4 a# H  Q$ k$ R. t, F- J4 A
from pytz import timezone. n! R; D! X; e# b# t

6 Q" |  o6 x% d, r- x) _' Gmst = timezone('MST')! I/ q! A" |" |& ]7 p4 H3 W4 h
print("Time in MST:", datetime.now(mst))  # Time in MST: 2017-01-19 06:06:14.495605-07:00
. {9 H( P8 r8 }est = timezone('EST'). c: }, k; O! W$ e, {% [
print("Time in EST:", datetime.now(est))  # Time in EST: 2017-01-19 08:06:14.496606-05:00- A9 O. D3 d  B! M* @7 S5 B/ ?/ V# z
utc = timezone('UTC')
$ O  r! }0 Z; s$ pprint("Time in UTC:", datetime.now(utc))  # Time in UTC: 2017-01-19 13:06:14.496606+00:00
2 Z' Q% M( o' V) }$ d2 _8 h. Qgmt = timezone('GMT')
5 N/ Q( m# H6 m' q( ?print("Time in GMT:", datetime.now(gmt))  # Time in GMT: 2017-01-19 13:06:14.496606+00:00+ e3 b' t2 q1 p' U! ?! A. a
hst = timezone('HST')* p9 Y% z, _6 Y7 Q; ~
print("Time in HST:", datetime.now(hst))  # Time in HST: 2017-01-19 03:06:14.497606-10:00
; g4 l7 N' F9 d' l1 O2 M; ~0 n6 [0 i- s7 }6 O. q4 ^- [, r
七、从给定的日期当中获取星期几
( z2 }$ D: d5 z  k- timport datetime
9 N+ y$ {: ^1 ~2 E  S( ]. H) i: w$ n7 X- x% S
dayofweek = datetime.date(2010, 6, 16).strftime("%A")
7 R4 d4 s# q' B! E7 o5 S$ P( vprint(dayofweek)  # Wednesday0 w/ K$ N! Y# w9 H2 S

1 _: V6 e$ l' {. E/ Z1 l% Q& h# weekday()方法: 0代表周一,6代表周日8 }0 F/ g+ z7 E# H$ Z! ^
print("weekday():", datetime.date(2010, 6, 16).weekday())  # weekday(): 2
7 w9 |- Z8 t$ m4 p& z9 f! Y
& X6 h1 c  `+ _# isoweekday() 方法: 1代表周一,7代表周日
* b2 W& Y1 A1 q8 @+ eprint("isoweekday()", datetime.date(2010, 6, 16).isoweekday())  # isoweekday() 3, O9 z) `/ |3 M! Q0 [. [
" i3 Z. Z* @$ T) c
dayofweek = datetime.datetime.today().strftime("%A")
) ]; p( y+ G( n# R4 l1 i' k$ u- aprint(dayofweek)  # Friday
* m+ ]% S$ I* T8 g+ @print("weekday():", datetime.datetime.today().weekday())  # weekday(): 4
7 {; r2 Q/ X. E0 Kprint("isoweekday()", datetime.datetime.today().isoweekday())  # isoweekday(): 5, Y" }- U3 ]: G/ R, p. |. }
5 j1 a# S$ p$ E2 l) w  H
八、计算两个日期时间对象之间的时差0 }: B! k1 J# c: E6 L+ \
import datetime
% V& U2 o: u( m0 qfrom datetime import timedelta
, M" P/ j7 e, b' I) K; E3 f
5 E( t$ q2 o1 ~3 jdatetimeFormat = '%Y-%m-%d %H:%M:%S.%f'
+ r" B/ ]* @( s; k9 adate1 = '2016-04-16 10:01:28.585'
" b2 K* t1 a- q* u4 ]date2 = '2016-03-10 09:56:28.067'$ f; [) q8 y# E" h; }) n2 Q& c
diff = datetime.datetime.strptime(date1, datetimeFormat)\( ~' j, o3 P* T
    - datetime.datetime.strptime(date2, datetimeFormat)
( W; T8 B) o7 k* \4 P. j' ]1 c0 N: S: z: `$ t9 ?, k. ~
print("Difference:", diff)  # Difference: 37 days, 0:05:00.518000
  T9 [* N& |- l) S. U' jprint("Days:", diff.days)  # Days: 37
2 e. A  J5 Y$ sprint("Microseconds:", diff.microseconds)  # Microseconds: 518000/ m' M) b# c- H9 ~: |" g/ {/ M
print("Seconds:", diff.seconds)  # Seconds: 300: B4 x" I* X- P& S  P

4 s% v( @3 O# P7 c9 y7 Y6 O4 N九、将 5 分钟添加到 Unix 时间戳
7 s  m8 i  J. }2 f% T) _/ limport datetime6 \6 [! }7 x6 p1 _4 l
import calendar3 a- A1 V  B# ~& D2 M" T

" G+ h/ c' N* ufuture = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
. b! `3 Y' \9 [* Pprint(calendar.timegm(future.timetuple()))  # 1621069619. p9 _) h6 [* \8 i

5 A3 N5 \+ W& x3 k; ~十、遍历一系列日期0 E6 N9 b5 B& c( b$ G
import datetime
' A5 p$ X$ |2 }: a% {" g5 l' l* A5 ^/ ~3 S3 a, N
start = datetime.datetime.strptime("21-06-2020", "%d-%m-%Y")
  ~% z4 D% x: B, }3 Iend = datetime.datetime.strptime("05-07-2020", "%d-%m-%Y")
' H* K' m  a" s3 F- L1 J& Xdate_generated = [start + datetime.timedelta(days=x) for x in range(0, (end - start).days)]
6 J8 r0 m2 s5 c' \- d5 \% ~1 J- j- X# b  J" a
for date in date_generated:$ `+ z5 ?# x; i. ~9 j6 j
    print(date.strftime("%d-%m-%Y"))
! i9 m' J2 R& l8 ]6 {+ G9 z/ @' B  q  t0 G: o5 V+ A
十一、巴黎时间更改为纽约时间
' S* h7 n: {2 x; `$ jimport pendulum1 ?$ U& Z3 r6 s: p* M

, V( n$ C+ }1 }( Z/ Uin_paris = pendulum.datetime(2016, 8, 7, 22, 24, 30, tz='Europe/Paris')
& H% G: c& ^- Nprint(in_paris)  # 2016-08-07T22:24:30+02:00" Y5 O; W- I$ C: M3 @$ _( G# n

6 r7 ~1 `: c5 E* G; x6 min_us = in_paris.in_timezone('America/New_York')
7 I) s$ n, ~& V, U2 |print(in_us)  # 2016-08-07T16:24:30-04:00
/ o+ y5 s8 j( m/ H$ h
+ @, t2 T6 ~9 e" {! @; z& v十二、使用 Python 获得最后7个工作日
  K1 W6 `6 o0 x! [; g7 T3 i4 k* ?  dfrom datetime import date
5 @8 L: B: o. V7 w( }& xfrom datetime import timedelta
6 }6 m9 _' G8 S9 M
3 Y% s2 N# h; z  w; ]today = date.today()
9 O) n; h' t( K' ]  L' W: k% }, z* {, P5 L" ~" o  x
for i in range(7):  Y' M# _# T+ E; p2 t
    d = today - timedelta(days=i)7 i' r& A. l0 q& V' D1 v1 u
    if d.weekday() < 5:
$ w( @3 w' s& }* t/ \' G4 ?        print(d)$ [) d+ s# T; o

# t# r$ e" u  S; M3 D十三、从今天的日期和一个人的生日推算年龄! u: d2 j" X2 ^1 r% T7 P  B- R
from datetime import date
# g$ x  C0 H1 L6 ]  [# o/ k9 U9 K% q6 \9 D* b( L

8 W3 N+ J5 ]3 c0 s* a1 Hdef calculate_age(born):
6 U9 C6 J) x; X$ `0 K    today = date.today()
  p4 U9 a" |5 [& T" G7 A4 ^    try:
( ]' @1 W& i! u7 l3 a' }        birthday = born.replace(year=today.year)) t+ Q" O$ U; h. C+ p: C
    except ValueError:
; @) E& f/ t( W2 _8 d9 h% p        birthday = born.replace(year=today.year, month=born.month + 1, day=1)
! Z' U- S! t" k  K4 W) t1 r    if birthday > today:1 _: O8 |, L* h$ B
        return today.year - born.year - 1
% B/ U0 ^) _7 T5 H# K8 f    else:& ?( `% E! H& S
        return today.year - born.year9 b' v0 R; G% ]
3 e! d( f$ }3 y- @1 U3 i
7 m" W  U! I# k# J5 b3 v; q8 p+ Z
print(calculate_age(date(2001, 3, 1)))
9 ^, w4 p5 E  N' _4 a8 w9 k1 q2 n0 r6 [- {* d' Y. e6 d6 ?& n* [
十四、获得本月的第一个星期二! ?6 @" _. m1 v, N3 i
import calendar
+ J) n+ U) Y  S% \! Zfrom datetime import datetime
. [; f& o! o3 x/ P* i: Z7 t8 Q+ m9 u, F3 _8 E
c = calendar.Calendar(firstweekday=calendar.SUNDAY)
# ~9 Z7 \5 L. {) r2 q: ]monthcal = c.monthdatescalendar(datetime.today().year, datetime.today().month)
/ J9 w6 ?4 a. B0 F' \5 y#Python小白学习交流群:153708845  ) q: I3 z' X/ G1 ^/ T' `
try:, e% l% @' P/ a( O
    tues = [day for week in monthcal for day in week if
  f, S# B" B& d5 y) Y            day.weekday() == calendar.TUESDAY and day.month == datetime.today().month][0]0 ~( P* Q& R0 B# `
    print(tues)
3 A* `! t. K) j' i, Gexcept IndexError:
" j. E$ W8 ]  h6 G. A    print('No date found')0 e( V2 ^- ~6 K& |
2 O1 O7 b7 R4 A$ ]7 f* p7 S
十五、将整数转换为日期对象9 ~) S' R% E( q# r. K, B$ r
from datetime import datetime
$ ?- ]) o7 t8 [% g. [9 G. g% s
! @% _2 B% ^  hi = 1545730073
4 s; b; U3 q/ @+ K) ~timestamp = datetime.fromtimestamp(i)
/ \; V7 s' b4 k* q- H9 n
- I) Q' i, k- Y* Dprint(timestamp)  # 2018-12-25 14:57:53
6 P  w: I  K' D4 Z3 G3 J% Pprint(type(timestamp))
' k0 z8 g1 I0 u- Q
# Y0 Z/ O# a+ b) a十六、当前日期减去 N 天的天数
$ w4 n* D, b; S9 C0 ?2 ]from datetime import datetime, timedelta. s2 a! f# C- r9 q

6 I9 a9 G, A- X! r2 u2 g( H: f2 od = datetime.today() - timedelta(days=5)
: V* w# t& t0 N( |" o/ @3 [print(d)
4 K# [4 l& k. {7 R+ L) i2 t& ?8 v" P) V0 T
十七、比较两个日期4 H* h* m0 f+ Q; ]
import datetime
: T- E$ l+ b4 l1 w# ^) P! J4 R, @2 H) h* V% I( d4 S
a = datetime.datetime(2020, 12, 31, 23, 59, 59)
  y& _% T) e  @b = datetime.datetime(2020, 11, 30, 23, 59, 59). z* Q0 Z& ?( Y' `7 N# u

4 v6 k# T6 l& C, bprint(a < b)0 b% E; R. k/ V1 C
print(a > b)
/ U% p5 {+ o6 N! y' A9 `2 F! X7 B8 G+ N" M% ~- g% f
十八、从 datetime 对象中提取年份
. C2 y8 `  |! [0 T7 Zimport datetime. A- n0 u8 j& K7 }* o# z0 B+ V

/ |+ Q, O5 }) w4 J  S2 zyear = datetime.date.today().year+ z# w  c/ q4 P* `* a2 U3 N0 i
print(year)8 t! T$ i# Z; ^3 F! Q
( d# K% |  F; Q- S6 t
十九、根据日期找到星期几$ ~+ L$ L& s2 r  Z8 a2 l5 |
import pendulum
- f5 T' p. E2 \* U/ |) ^
. b3 u2 d7 M# pdt = pendulum.parse('2021-05-18')
) t& @. g( [7 C( kprint(dt.day_of_week)  # 2
, a+ `0 F4 |- E; j5 o; g
9 ^; t3 I5 T# U, }dt = pendulum.parse('2021-05-01')+ m4 s$ W0 ]( X( {( R
print(dt.day_of_week) # 6# I5 Y9 `9 L) b( R

( e2 I+ P. s# @$ ~8 T  Adt = pendulum.parse('2021-05-21')
8 [9 b* D4 W: Y( W+ \4 I, O* |print(dt.day_of_week) # 5
8 T2 ~2 u) ?9 m2 p
6 \. b; J, u5 T) E二十、从当前日期获取 7 天前的日期
8 x4 n' v2 p+ I! T  Dfrom datetime import datetime, timedelta' q5 c7 ]# B( r/ t& u: O2 [2 k& e
% L# ]4 ~  S. a( {! |
now = datetime.now()
3 P- z4 _6 t0 C' H1 c
9 g+ E& Q  S5 @for x in range(7):  S' U, q6 B4 A& ~2 y9 a0 Q
    d = now - timedelta(days=x)
4 M4 \& n( e; Z0 z- G9 W    print(d.strftime("%Y-%m-%d"))
! B( [* F6 b) ~7 @- q" T" R! O
% j; Z1 X5 H4 G# l二十一、将两个日期时间对象之间的差值转换为秒
5 w  G4 C1 `( J$ T( |3 Kimport datetime
: T. o; |" \- X& y7 q7 ]' w
# O% L5 k# _+ G; @time1 = datetime.datetime.strptime('19 01 2021', '%d %m %Y')/ V- k. h0 Q1 w( }! F
time2 = datetime.datetime.strptime('25 01 2021', '%d %m %Y')# l: H9 _- F% v" K; h
) ^" G( R3 P5 w" r
difference = time2 - time1! A# x" v% t+ t6 i1 Z
print(difference)  # 6 days, 0:00:00
( R6 H# H& I1 m) m
5 B  I3 t2 ~1 r, qseconds = difference.total_seconds()
# ^' O5 j6 w2 J2 T  h6 Jprint(seconds)  # 518400.0
, D2 Q3 W9 c: y: e* P  r. u
9 O8 H; p" ?) F* i" z5 Q3 k2 p. r二十二、获得任何一个月的第N个星期五5 _5 @9 G0 ^4 ^$ i2 Y) G; S/ A
import calendar
" \6 p* J6 S# g1 \  x
( o$ S/ t6 F9 Z, ]2 ~* P# K# 取2021年5月的第三个星期五
1 S( ^2 w8 }. p1 D4 r" Ac = calendar.Calendar(firstweekday=calendar.SUNDAY), p. o0 @7 s  u
year = 2021
5 B( t. M  I  c% }; \month = 5; x% ]( f  z0 h0 a+ e, R" ^) B
n = 2  # 取第三个) E( M& |$ s, C1 Y0 M
monthcal = c.monthdatescalendar(year, month). o: a; X1 U3 O' q. M
; ~% `! `9 A1 }3 u3 r; k0 ~
try:
8 W  @) S1 v/ G; |1 T$ t    third_friday = [
  |4 q. |5 _7 E        day for week in monthcal & I* a2 R1 u% T1 ?8 \
            for day in week if6 u; k8 V/ m/ ]( p) x; T
                day.weekday() == calendar.FRIDAY and day.month == month& K/ D9 w1 n$ \3 O- p) A
    ][n]6 x" Y# k& r  g7 T# w* @
    print(third_friday)  # 2021-05-21- I4 l7 D& p' M% O
except IndexError:5 ~6 K# d2 _7 @. t, y: z; g8 @$ m* Z
    print('No date found')
: a1 l2 h) g' A" i1 s) j) n" T  C& M1 u  z
二十三、根据周数获取日期, ^- O( B; L* r; k1 Q
import datetime
- R- y) K# M  L: ^+ cfrom dateutil.relativedelta import relativedelta
/ P+ o0 [5 }3 _+ Z- H0 \3 ^7 F+ E' u5 E5 y3 e- i
week = 256 ~* a4 ]+ \, R
year = 2021
( V, ~1 f6 L! ]date = datetime.date(year, 1, 1) + relativedelta(weeks=+week)) p8 c6 e* T$ U' a' D/ X" K
print(date)  # 2021-06-25
1 o$ o$ K; U6 O1 X9 Q' r
/ M7 ~, F% j0 v: s, N& E) T+ {二十四、获取特定日期的工作日
) O6 c0 g% j( d; y* K* jimport datetime
/ r/ F# P1 m% @( \# Q
* z0 D& p  i7 }: Y* Yprint(datetime.date(2020, 5, 15).isocalendar()[2])  # 5
. q( f  I2 z( K  F
( s4 B4 {4 d2 I6 K8 l二十五、创建一个 15 分钟前的 DateTime3 L, q: E4 m7 O+ R
import datetime, @% ?! o, t1 n& W8 \
#Python小白学习交流群:153708845  
, z9 R4 p: w, Jdt = datetime.datetime.now() - datetime.timedelta(minutes=15)
  x- ~5 {0 b  Z9 Q, A8 Tprint(dt)  # 2021-05-15 22:25:55.8973652 b7 S9 z3 W: o* x
( X9 m- j4 T1 Q% @) s5 k& b
二十六、从特定日期获取周的开始和结束日期5 y# N  ]1 d- ~% Z
import pendulum# W0 d/ i3 ]  |* {9 @3 C6 Y0 H, Z

4 \$ v# m% V4 k2 M# ddt = pendulum.datetime(2012, 9, 5)
! l/ [: r& J) P0 w, V1 N$ ^$ [7 ~) s7 F1 e* X
start = dt.start_of('week')
* P, p9 h3 J2 G! Vprint(start.to_datetime_string())  # 2012-09-03 00:00:00
/ x2 A' N& C0 |: v' z0 ]) s: X4 t0 n' b9 r! r
end = dt.end_of('week')$ G, ?2 o0 m9 f$ c: l  ~; Y; A- |
print(end.to_datetime_string())  # 2012-09-09 23:59:59
; M, R# M- @/ W& |$ m' B0 X2 Z$ E, ?' j; ~
二十七、两个日期之间的差异(以秒为单位)
' X' g* m6 p0 p  f0 k- T7 Qfrom datetime import datetime
$ Y- V8 z; O2 X- s5 p& W/ y" ]#Python小白学习交流群:153708845
4 R" I* P  C  c' T0 j. G# Afmt = '%Y-%m-%d %H:%M:%S'
0 J2 Q0 f3 m# O, C' ed1 = datetime.strptime('2020-01-01 17:31:22', fmt), M: r* k8 O3 W" q7 L  z9 Y
d2 = datetime.strptime('2020-01-03 17:31:22', fmt)
/ r+ }8 \+ F& n1 b9 Y9 n) B9 a
+ o/ @3 }/ g$ ?# `2 Y; ?$ h. jdays_diff = d2 - d1/ u8 Q7 a8 O" k8 e& z2 O
print(days_diff.days * 24 * 60 * 60)  # 172800
, l; }9 X$ s& _. a, O  m( R' h+ e) k# u0 f; {  \' c5 k  }
二十八、以这种格式获取昨天的日期MMDDYY. |0 g% }; a$ g' }+ o
from datetime import date, timedelta
" ]  F1 F6 L5 Z$ q  m
) C& e! k$ a7 `" B. @# M6 \yesterday = date.today() - timedelta(days=1)9 g& e5 n1 H2 _" S2 c/ x
print(yesterday.strftime('%m%d%y'))  # 051421
; h* q' v8 Q0 c/ k4 @( P* z6 o( c& r
二十九、根据今天的日期获取上周三的日期- n) z! D, v& V
from datetime import date+ M5 `5 n( f1 Y% [& h, p1 v2 B6 x2 \
from datetime import timedelta
$ Y  ]+ M2 K! P- h- H% m5 ~4 Z) e/ F: n! `/ N0 H0 ^% k( j
today = date.today(). d! l2 U7 N3 _* @5 O: `
/ b. p  |/ t9 F0 [' g# V0 q
offset = (today.weekday() - 2) % 7
( m& i0 y" S( _/ D: p  jwednesday = today - timedelta(days=offset): @$ q) C, C9 V$ G& n2 D
print(wednesday)  # 2021-05-12- o3 U* v; R2 \  a- J
+ e2 i6 A7 U: k( c) R
三十、所有可用时区的列表打印
& s5 \3 N6 o5 P/ B3 pimport pytz' O' w; e" W1 G% c- e
  a/ B% Q( t; O5 |6 }
for i in pytz.all_timezones:
5 I/ v% L) i+ C    print(i)
7 r* D7 ~& b) M* I& w5 N* [! ]# ?5 T/ B* O& ^* H5 T
+ z# |' E/ Y; \- h- h( w! {- T

( _+ T& b$ g( k5 |  o, a+ h7 p/ f




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5