数学建模社区-数学中国
标题:
Python处理日期方法大全、三十种方法
[打印本页]
作者:
2744557306
时间:
2024-3-22 11:30
标题:
Python处理日期方法大全、三十种方法
使用 time 模块展示当前日期和时间
+ H6 P- d: j) Z/ p- k I
import time
: T4 X3 Y+ O7 l) H/ G- f
from time import gmtime, strftime
; ~2 {1 g% u0 E! ~1 ~6 `
: C% J- u$ M" m/ p. h7 N( A; D
t = time.localtime()
; B5 J& Y) b& T2 l) G" f7 o& A
print (time.asctime(t)) # Sun May 7 09:30:37 2017
l$ h( i$ T- L3 N* ?; a
print(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())) # Sun, 07 May 2017 04:00:37 +0000
5 A4 y; ?' h. U! C2 [ |
print(strftime("%A", gmtime())) # Sunday
, T# M1 I2 ^* e. z; U% X
print(strftime("%D", gmtime())) # 05/07/17
, V' o/ v+ ~( ^7 ?6 \4 w8 Q# {
print(strftime("%B", gmtime())) # May
4 A8 u5 f; v5 N. e: y
print(strftime("%y", gmtime())) # 17
* ]/ b9 J% v4 N2 n5 J
1 A8 c+ o5 l" x8 Q a- f$ {
# Convert seconds into GMT date
* K$ N+ f+ \% H' `# D
print(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime(1234567890))) # Fri, 13 Feb 2009 23:31:30 +0000
; g9 B& [# h9 E* F
9 V8 s9 ?" N d$ `
二、将天、小时、分钟转换为秒
/ D7 K1 s5 e; y D" K1 {: C' D; k
SECONDS_PER_MINUTE = 60
( L1 w* n8 e" V3 l
SECONDS_PER_HOUR = 3600
$ u/ W) r+ t" j; B3 ?; o
SECONDS_PER_DAY = 86400
& V/ E% Y8 \/ z, W0 y' p
- k. w2 x$ s! U# }* m# H
# 输入天、小时、分钟、秒的数量
4 n0 k0 g+ B$ ~' }' A9 S& |
days = int(input("Enter number of Days: "))
! p4 z( W# h5 r. _9 @- N! A
hours = int(input("Enter number of Hours: "))
) u7 ]: I6 F1 U6 `
minutes = int(input("Enter number of Minutes: "))
4 i+ |# E8 {2 W; l/ y; H
seconds = int(input("Enter number of Seconds: "))
3 i8 z% d: h" \4 ^: W8 L* q( O
9 @+ ?& b: e& D
# 计算
1 L0 `: f9 a) t5 E4 N
total_seconds = days * SECONDS_PER_DAY
, h0 }$ v& h% G5 N
total_seconds = total_seconds + ( hours * SECONDS_PER_HOUR)
0 N+ K% b4 P/ [0 a# l: ?# A
total_seconds = total_seconds + ( minutes * SECONDS_PER_MINUTE)
. n8 l0 e# Y) O/ E6 V
total_seconds = total_seconds + seconds
% r6 V" ~+ s5 I {6 d, F4 J1 o
* ^3 ^; `1 E) E6 `
# 结果
; v+ t' U% A/ [ a3 B% }
print("Total number of seconds: ","%d"%(total_seconds))
( A4 ?# T2 q3 @# e f8 n
'''
0 A( i2 M- O! |+ u; ~/ Y s
Enter number of Days: 5
1 A: a; }9 J+ l9 Y
Enter number of Hours: 36
4 [% [6 }/ u/ C8 ]7 A1 {, c. n
Enter number of Minutes: 24
6 V. ^. [6 t: P: h& L% @; `4 n
Enter number of Seconds: 15
. e: {0 s# h8 r
Total number of seconds: 563055
/ p% ^! e7 L' h1 T7 u' Z
'''
/ L* E* r S- H6 M
- g9 P: E* N/ ~# `# o9 N
三、使用 Pandas 获取当前日期和时间
7 }4 N$ l% Q, r& h+ } n3 P+ h
import pandas as pd
5 v6 b8 I+ L. w
print(pd.datetime.now()) # 2018-01-19 16:08:28.393553
# ~- K- m. y# m- S4 @# ^7 ^
print(pd.datetime.now().date()) # 2018-01-19
8 t. v; O0 |& |
print(pd.datetime.now().year) # 2018
4 d' } M$ }- H6 P1 y
print(pd.datetime.now().month) # 1
8 l0 x9 q9 M# N" Y' Y6 \9 L
print(pd.datetime.now().day) # 19
, G- P; f- n" r) G6 a0 V) Z
print(pd.datetime.now().hour) # 16
( |" B) e4 v/ l) @0 z1 l0 A! h' L( @
print(pd.datetime.now().minute) # 8
& F+ |3 k/ Q0 [* |+ ?
print(pd.datetime.now().second) # 28
" h' M: x) J& x, V5 U
print(pd.datetime.now().microsecond) # 394553
2 F% g9 D+ W, U: ~
) u* p, x% `; A. y1 h0 j8 v0 o
四、将字符串转换为日期时间对象
. d7 V5 ]) m0 Q9 E
from datetime import datetime
) ^- N3 `" D5 g& J. f* y
from dateutil import parser
8 h. [+ I9 I/ V; T2 Y
/ _4 A8 L0 D* \ ?- C! x% @+ g3 `
d1 = "Jan 7 2015 1:15PM"
8 b3 Y z- k4 d& }& T: ^1 {
d2 = "2015 Jan 7 1:33PM"
, K( I0 O2 F* W+ P1 X" }
- y9 O& d* Y9 U& F; @) b
# If you know date format
% q6 O* y- u( o6 ]1 \6 l9 s J
date1 = datetime.strptime(d1, '%b %d %Y %I:%M%p')
( }% X5 X/ _) X$ H' P
print(type(date1)) # class 'datetime.datetime'
& c, V' k' t+ x# R% i- T$ K; e6 Z
print(date1) # 2015-01-07 13:15:00
2 j& J# y0 s% U5 K9 A F# \
8 B+ k* d) m' L4 D. G
# If you don't know date format
, x; \) E: v" w3 u* F
date2 = parser.parse(d2)
% E7 o2 X; b4 v7 Z& K
print(type(date2)) # class 'datetime.datetime'
3 J; H' t1 ]- ^( K
print(date2) # 2015-01-07 13:33:00
; G4 |( G. Z1 x6 X8 {8 x+ b
4 d9 j# {6 _8 a1 y' e) T6 [
五、以毫秒为单位获取当前时间
' g3 s6 ]! ?: C0 f' K# d
import time
- n( W1 S3 e6 }7 ^2 L+ J$ G
$ Y' H/ J c; x- A
milliseconds = int(round(time.time() * 1000))
. ~' s* q' M s. d! j- g
print(milliseconds) # 1516364270650
& u! A3 ~" f3 T. ?# T1 K6 U
; s+ k; w$ x% O+ U
六、以 MST、EST、UTC、GMT 和 HST 获取当前日期时间
0 w5 n0 v# v' j/ U5 o
from datetime import datetime
7 \' Q7 W( F; [' x6 G+ n
from pytz import timezone
7 U/ h2 z6 A# y% o' n. q
1 \5 Q. s% d8 a
mst = timezone('MST')
0 A6 t2 V5 N9 v# H# l5 K5 o. L5 p
print("Time in MST:", datetime.now(mst)) # Time in MST: 2017-01-19 06:06:14.495605-07:00
6 o6 s- s# f q. K
est = timezone('EST')
" ?3 {, e9 A. \
print("Time in EST:", datetime.now(est)) # Time in EST: 2017-01-19 08:06:14.496606-05:00
0 w2 S# K( c- [8 R& g2 S
utc = timezone('UTC')
0 w$ [/ u5 s) t7 @
print("Time in UTC:", datetime.now(utc)) # Time in UTC: 2017-01-19 13:06:14.496606+00:00
& f2 t: ]% p0 G: Z1 ]
gmt = timezone('GMT')
( N3 G9 ?1 r& [, L: h
print("Time in GMT:", datetime.now(gmt)) # Time in GMT: 2017-01-19 13:06:14.496606+00:00
* L3 f, A" L- u7 m. ~2 ?
hst = timezone('HST')
) B) H$ h3 m/ L+ N9 H5 }
print("Time in HST:", datetime.now(hst)) # Time in HST: 2017-01-19 03:06:14.497606-10:00
% Y! v% X) }/ ~' U4 A- U$ x; n
8 L1 ~2 P$ _+ B# \7 W: U
七、从给定的日期当中获取星期几
* _" k! a+ U) v/ m4 R' X
import datetime
8 o8 y- F, A9 R& K' D/ K
1 T' O/ e/ |% N! B( _
dayofweek = datetime.date(2010, 6, 16).strftime("%A")
" v# {! G+ p+ S% V0 E K& q7 U
print(dayofweek) # Wednesday
# P+ _/ T! Z1 a' d
: `3 a, l7 |* ~
# weekday()方法: 0代表周一,6代表周日
6 p4 L2 n5 z# k
print("weekday():", datetime.date(2010, 6, 16).weekday()) # weekday(): 2
' }' I4 F$ C( m2 o3 ]$ V% l
3 z! a4 c& `2 X2 ]. c, O) y9 r5 K
# isoweekday() 方法: 1代表周一,7代表周日
2 c7 {4 n- b' e5 k, y
print("isoweekday()", datetime.date(2010, 6, 16).isoweekday()) # isoweekday() 3
7 \+ r/ t& T& S$ o0 G3 B
( J. b& k7 f* ~- }' T/ T2 s
dayofweek = datetime.datetime.today().strftime("%A")
8 S3 z! l8 C6 L2 [, }# ?
print(dayofweek) # Friday
" W8 Y" K7 S& ? Q5 i( j& b' N
print("weekday():", datetime.datetime.today().weekday()) # weekday(): 4
, o* S& w4 t4 X$ T1 Y
print("isoweekday()", datetime.datetime.today().isoweekday()) # isoweekday(): 5
2 I5 I B0 ] Y, h
, B1 k8 q9 K) q
八、计算两个日期时间对象之间的时差
3 p/ r0 x+ @5 x( Z. Z
import datetime
% @, c2 k2 g @
from datetime import timedelta
7 M+ G6 l: t! _% N
$ e: e9 k1 G% A: [8 T
datetimeFormat = '%Y-%m-%d %H:%M:%S.%f'
) f) Q$ L! H. Y: ^5 X
date1 = '2016-04-16 10:01:28.585'
8 b$ Q6 O0 k: H/ j) d
date2 = '2016-03-10 09:56:28.067'
K$ U9 J* ?4 N# f8 z1 `
diff = datetime.datetime.strptime(date1, datetimeFormat)\
3 D T, ~3 H2 R' q: t0 T
- datetime.datetime.strptime(date2, datetimeFormat)
2 X( \! v' D/ [: g
y' `/ Z8 z: Y0 n" v( G
print("Difference:", diff) # Difference: 37 days, 0:05:00.518000
3 ^0 x: G$ b4 X4 r' `2 T
print("Days:", diff.days) # Days: 37
7 V. b# D# Y) _8 [5 @. N* U( \4 c
print("Microseconds:", diff.microseconds) # Microseconds: 518000
- x; x7 p0 A# } k* G& E5 Y
print("Seconds:", diff.seconds) # Seconds: 300
( x0 Y8 O9 g# ]+ a
8 M8 E3 C4 R* m# n
九、将 5 分钟添加到 Unix 时间戳
9 E$ P+ y8 x' ^# _& v0 U" y
import datetime
# i, J0 @& L0 j7 p
import calendar
! [/ A( i g7 R3 ~5 b
! z; X$ e3 _% a4 ^8 q! `
future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
. d2 `$ G- \% w- R9 G8 b# U
print(calendar.timegm(future.timetuple())) # 1621069619
. e; E% j: r- d+ W& |8 [& L
% L8 A$ \6 v/ v& i
十、遍历一系列日期
( S3 e- y! u0 b/ y
import datetime
- D I: w: j3 ]( X/ _' a# ]$ I
+ c: n1 Q# l, u
start = datetime.datetime.strptime("21-06-2020", "%d-%m-%Y")
* N8 C2 r3 o3 \( @
end = datetime.datetime.strptime("05-07-2020", "%d-%m-%Y")
# w* B) {6 M4 Y3 C8 c
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end - start).days)]
+ l( _: N6 |! |# x3 {$ k: X* I
9 U/ w' U" g! _# ]5 `
for date in date_generated:
% g* r3 \& o8 A! u; G
print(date.strftime("%d-%m-%Y"))
- h% e1 l2 p1 m
9 p+ I# |0 `: D
十一、巴黎时间更改为纽约时间
" }; {! i m, g* s4 k; D
import pendulum
c, q% i9 A3 m1 R/ W- k
3 u1 g1 i4 F! V. e* I1 ^/ @' k
in_paris = pendulum.datetime(2016, 8, 7, 22, 24, 30, tz='Europe/Paris')
. B/ t T% p" s9 j$ x" u8 E" C
print(in_paris) # 2016-08-07T22:24:30+02:00
7 g1 C1 u6 B3 H9 g) L* x
8 c% ~6 q% \3 }; c8 G2 d/ z& s- E4 r
in_us = in_paris.in_timezone('America/New_York')
( {2 P4 U0 p6 Q! n _. p
print(in_us) # 2016-08-07T16:24:30-04:00
, R1 P) ^ {) z7 h* G9 ]1 S
* r: a* o- o8 s8 C
十二、使用 Python 获得最后7个工作日
1 ~' N6 Q" Q' O6 Q$ ]- ~ M# h1 t! Y9 V
from datetime import date
, X3 F5 @5 t8 _" B
from datetime import timedelta
/ ^1 ^4 C# V4 A5 W4 d+ p
4 h: v3 L4 t6 U4 N9 b' n* h
today = date.today()
' K- a2 n( {3 f, ]" x
% C1 D [7 |: }3 @. R
for i in range(7):
4 R* n$ S4 C+ l7 Q# `
d = today - timedelta(days=i)
, a8 M! j! H- S8 Z% \: a7 Z. C# D
if d.weekday() < 5:
% k8 x1 f1 B4 F5 Y, q3 `. f
print(d)
% i9 u' S# v& C5 }* J' D
! L a" H; d* f* N9 `) H1 O
十三、从今天的日期和一个人的生日推算年龄
) p( S" r2 _0 e
from datetime import date
! y3 h* v8 ~$ I* b5 u
, D# l8 p" E: V: c
3 V" R( _4 }# f1 z9 U
def calculate_age(born):
3 x2 f* x/ ]2 g8 a; ~
today = date.today()
% S7 `. ]4 {# L. W" l# P1 L8 j( I
try:
: |. Z5 q' t# ^. l) g% o
birthday = born.replace(year=today.year)
+ W! E; ^# V- ~! Y) s
except ValueError:
: O% h% g- R2 a) o* j L, A
birthday = born.replace(year=today.year, month=born.month + 1, day=1)
; ~" P* H+ R3 x' s4 V/ G9 M
if birthday > today:
6 i9 I+ d5 r; W5 E* `! H5 j0 [
return today.year - born.year - 1
! q J# U8 l6 M
else:
, } r9 C( f2 l, a# I& s
return today.year - born.year
: I f f% H6 i! K1 l4 H3 r
) h9 ?3 } \6 z- J% W9 Z+ ^
' s# |# n. E# V
print(calculate_age(date(2001, 3, 1)))
5 s& ^* F" S" C3 R2 p. L2 K* ^
, f8 N W& F7 w! o4 }( }1 O# R
十四、获得本月的第一个星期二
, q. ~( ]. r8 N" f8 `
import calendar
- T$ D4 y4 [# p: m4 q- i
from datetime import datetime
4 D& m' F2 p. a( Y6 s3 ^
i( t. l5 ]8 Q( s& B# F
c = calendar.Calendar(firstweekday=calendar.SUNDAY)
- h1 s% r" @5 M' G0 i; d% M; N
monthcal = c.monthdatescalendar(datetime.today().year, datetime.today().month)
" r% ^! P( w& x' ~
#Python小白学习交流群:153708845
" i7 U8 ]* k5 n+ A0 h4 W
try:
; L% ~: N; r8 d
tues = [day for week in monthcal for day in week if
! X- J# R) E% l1 o
day.weekday() == calendar.TUESDAY and day.month == datetime.today().month][0]
, ~9 ?9 T1 }# f( k$ h
print(tues)
' a9 l9 D+ g- H4 ?6 u
except IndexError:
( ?; i2 j: k9 f) [& x0 O7 d
print('No date found')
2 K7 W5 Y# d- P
& O! z# z9 A4 P
十五、将整数转换为日期对象
c" y1 j$ ^! \4 d1 N1 _
from datetime import datetime
) C$ [ r. H, F4 }) c7 w
5 y" n7 K' i1 t7 \* k4 {
i = 1545730073
! u0 E, y2 j8 {% s2 d
timestamp = datetime.fromtimestamp(i)
) S, V" ? O! x: k
& Y5 M4 w5 f4 n* z( m) O8 C5 m
print(timestamp) # 2018-12-25 14:57:53
! D8 M1 s! ]+ n1 o" n8 B
print(type(timestamp))
2 G$ @( i, S( ^$ G
$ b1 @0 s" I; e7 Q1 `$ \5 U
十六、当前日期减去 N 天的天数
4 e2 R. c+ z2 t& ?/ i' D
from datetime import datetime, timedelta
$ q c" a7 C+ O6 b& t* G1 O
4 {) l6 q& K; `, }: e0 E! _
d = datetime.today() - timedelta(days=5)
8 V6 y7 y+ k. q }4 M
print(d)
9 {2 _' |' z# k4 j- X2 c
9 P! N2 b4 \# h4 ]3 {$ C
十七、比较两个日期
. r- K' s6 H4 |) t; C7 x- v
import datetime
! u( u9 \4 g% B( y
0 R2 B. ]! B9 A: [1 ^
a = datetime.datetime(2020, 12, 31, 23, 59, 59)
# S9 d- m p4 z) w, R& V
b = datetime.datetime(2020, 11, 30, 23, 59, 59)
% f" Y! B( p, @. ^) Q( e
! B/ ?5 @) B7 C: \% }3 Y
print(a < b)
+ |7 F: l7 _; _& r# w& C' a
print(a > b)
* m. U/ g8 e; E o$ [
- l+ y# I9 S( i8 H1 w+ |1 [
十八、从 datetime 对象中提取年份
+ [ n2 P3 |' b& a1 r0 R
import datetime
0 l% [+ s8 C3 G; i# Y9 |' \ @
6 x2 r( o: t3 {. h( \
year = datetime.date.today().year
: x: u' v4 |. ~, c/ z' ^7 z
print(year)
/ D% G* K6 l! h: m" i3 M8 C! i% @
7 O$ B% S. O- l& P
十九、根据日期找到星期几
( }5 i' ^! \$ `! Q0 W* Z
import pendulum
1 k( O/ v. E# Y+ f/ H" n
7 Y! y" T2 M1 \3 ]. _5 t' v0 k
dt = pendulum.parse('2021-05-18')
" ~8 {. d! A" f/ o1 q \8 \# r: l: i
print(dt.day_of_week) # 2
- o0 E, h" R# w* f0 W: @
Q& z1 G* B$ M
dt = pendulum.parse('2021-05-01')
5 T f; z+ j n6 n& z6 N$ S
print(dt.day_of_week) # 6
/ J+ n, g6 E3 m) O4 C- B( |/ c
9 v0 N. M1 D! C5 d! h" e/ S
dt = pendulum.parse('2021-05-21')
# O5 D7 `% I) p2 z1 M- T- K
print(dt.day_of_week) # 5
0 b( L; L# \" U3 _% R
- U V, y8 U" K+ ^2 Z3 A
二十、从当前日期获取 7 天前的日期
0 d% E* l! w: `4 ]! m0 P" s
from datetime import datetime, timedelta
2 Y7 s( `+ M2 n7 k1 x0 N
# P3 V2 l% u3 n2 o4 V
now = datetime.now()
2 z B3 @' k h+ v
" d, @- } U& y5 C5 }5 L
for x in range(7):
, {5 H" z- G$ }% q
d = now - timedelta(days=x)
: q3 M3 i, x, C; X6 R
print(d.strftime("%Y-%m-%d"))
3 P" V( w& f' v0 m$ i4 R
) C! g$ T0 B/ n* j- {
二十一、将两个日期时间对象之间的差值转换为秒
( d+ Y8 ^- V8 o0 v5 k$ W
import datetime
0 }" G5 w5 ^. H0 l. {+ W
# r7 W$ M, H3 N$ c: V
time1 = datetime.datetime.strptime('19 01 2021', '%d %m %Y')
( ^. P+ K! L8 U/ K
time2 = datetime.datetime.strptime('25 01 2021', '%d %m %Y')
2 X( I8 @8 F8 t/ z" u) @) |
& h9 u. f' m6 N. e' n/ X: i
difference = time2 - time1
/ n% x; {. \4 M
print(difference) # 6 days, 0:00:00
( ]4 _0 V6 a9 H3 H+ M. ~3 e
+ h: a+ m: `8 K. _: z
seconds = difference.total_seconds()
- l r _0 Q0 G U% p
print(seconds) # 518400.0
# X# O4 q$ |( ^. F( T; U7 h
4 F/ i( U- i7 x7 |2 o
二十二、获得任何一个月的第N个星期五
T; N. ^& L1 N
import calendar
1 o+ ?( f( r( v8 j, |
' b p4 t. [$ d3 J
# 取2021年5月的第三个星期五
- D" l4 k8 N6 b
c = calendar.Calendar(firstweekday=calendar.SUNDAY)
0 H8 @0 n+ `+ g2 p" @: Y! T
year = 2021
) m T: n' |4 R% K, u
month = 5
8 N M9 Q0 O1 o1 v
n = 2 # 取第三个
- a2 E9 q* q0 n# G+ Y
monthcal = c.monthdatescalendar(year, month)
8 a& @! H% G" K2 O- F. J( x9 Q
! _' B; h3 q3 R0 P6 b. v% i
try:
8 O0 a3 s- Z7 V7 g9 Z. k
third_friday = [
8 }0 K8 b0 e+ k- p5 R3 C5 e+ s
day for week in monthcal
C5 X& u$ z4 f* |. n
for day in week if
. b. l; |! `2 F4 F& L
day.weekday() == calendar.FRIDAY and day.month == month
' K# n3 L% o1 I* V* {4 Q# {! t
][n]
6 S2 v/ e2 B! [, m& V
print(third_friday) # 2021-05-21
$ t; F, g d! X
except IndexError:
5 Y9 ] A: {$ M5 U$ f, v; `/ v
print('No date found')
- `, h# u2 e+ M7 Q
; a8 ^ U; \5 b+ h
二十三、根据周数获取日期
# F/ ]$ e- b3 V% l! E# ^. C
import datetime
' y d1 o6 O2 w, I1 C
from dateutil.relativedelta import relativedelta
- O q6 d7 d5 x5 H; |: W5 f- d: z
6 y- E* J: \4 K7 ?4 s
week = 25
5 F. n* \( _$ v. h
year = 2021
4 ?4 x/ m# _3 s- _7 T4 t( T# O, l: ?
date = datetime.date(year, 1, 1) + relativedelta(weeks=+week)
) o4 m2 L) |0 k' E
print(date) # 2021-06-25
# F- j$ \0 ]# f1 p- z6 |, K% w4 B
1 k6 V9 W9 E1 ?' @* Y
二十四、获取特定日期的工作日
, _" v, z: |/ x
import datetime
% y& O4 u% H8 R) A# C0 @
/ Q# j0 C& I+ r, M6 K; d
print(datetime.date(2020, 5, 15).isocalendar()[2]) # 5
5 T: V5 T: Y3 D& C7 J% ], h
* `3 Z3 y( ~3 l9 r+ `; u
二十五、创建一个 15 分钟前的 DateTime
: {5 P% _- n$ e, F/ H0 J
import datetime
+ L! `8 `/ ~, t5 x
#Python小白学习交流群:153708845
, B: v/ h/ }1 p' T
dt = datetime.datetime.now() - datetime.timedelta(minutes=15)
0 R; R5 i- [+ ?. _* H" j
print(dt) # 2021-05-15 22:25:55.897365
6 w4 D# P; n$ a- k
, K; X, a6 k* P
二十六、从特定日期获取周的开始和结束日期
4 U# ^: H! d6 O
import pendulum
( L; A: O% a* x. p5 n8 T5 ^
' k- `( [1 V( \0 K
dt = pendulum.datetime(2012, 9, 5)
, q& h6 k! }# i$ M2 K7 k& e
0 y' M0 \8 x! f& O1 v0 `8 x5 Y
start = dt.start_of('week')
& F: I/ W5 j0 m( |3 |0 v
print(start.to_datetime_string()) # 2012-09-03 00:00:00
6 Z. n& J* g/ L2 ~- H3 R. N+ r
: l, V8 F& R4 Z" q6 ~* S3 n' B
end = dt.end_of('week')
8 f ]# p& Y+ o3 G
print(end.to_datetime_string()) # 2012-09-09 23:59:59
$ U% @) ~" C$ K0 y! a
& ]3 i6 R" |/ M1 ?5 l
二十七、两个日期之间的差异(以秒为单位)
# |, H4 V/ \- @# }( c
from datetime import datetime
, u% ~1 [0 f' O/ ?
#Python小白学习交流群:153708845
) k n3 C9 t! B' x, Y: r
fmt = '%Y-%m-%d %H:%M:%S'
: u" C- } v/ W/ k) h/ x3 m& ?3 m
d1 = datetime.strptime('2020-01-01 17:31:22', fmt)
5 t% T% B3 X$ f. u v
d2 = datetime.strptime('2020-01-03 17:31:22', fmt)
, z9 r# u5 X: p2 g2 t. ~" ?# N
2 z$ i0 j5 ^7 g
days_diff = d2 - d1
5 V. p3 r0 d3 K$ `( X! E
print(days_diff.days * 24 * 60 * 60) # 172800
& v1 X" }$ l+ V
; z0 ]2 N( x6 X
二十八、以这种格式获取昨天的日期MMDDYY
8 U3 \" I8 i: E, G
from datetime import date, timedelta
! O! b5 r/ ]: R1 U" t
) o, ?0 |' T/ M
yesterday = date.today() - timedelta(days=1)
+ e* U8 h1 q8 |. B9 a' y+ M7 E; c
print(yesterday.strftime('%m%d%y')) # 051421
! i, Z k( H: o8 V$ G( W3 F
/ m7 A7 z4 v; M
二十九、根据今天的日期获取上周三的日期
) F) m1 A7 G7 v
from datetime import date
: S8 b* ?$ a, Q `. e$ ^3 B' W5 _
from datetime import timedelta
" Z3 E* t5 |0 X: D
- {2 y2 @" ?5 y/ j" a$ R' @5 W* ^
today = date.today()
" ], n. Y7 a/ L+ d) `
3 L- @' s z) _1 j
offset = (today.weekday() - 2) % 7
0 c2 Z0 Z! s/ |6 [! N* ?3 `
wednesday = today - timedelta(days=offset)
) M( L T3 J' M: k$ S- g8 S
print(wednesday) # 2021-05-12
: Y y3 G4 b8 Z3 C( C7 V
% G8 o: `5 D9 Y
三十、所有可用时区的列表打印
6 d, ^3 F9 Y) Y' v8 k/ v5 a
import pytz
{- C' ?$ U# b) Y: ~
- W& r6 l; }- v5 `
for i in pytz.all_timezones:
9 C/ p% a! D, U( y; E4 o
print(i)
2 ?+ p# q! V. a% _/ z
' i& v7 l! J) Y
# K4 v+ G' V* e# z: d# p
7 r/ j2 \9 H/ k
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5