数学建模社区-数学中国
标题:
Python处理日期方法大全、三十种方法
[打印本页]
作者:
2744557306
时间:
2024-3-22 11:30
标题:
Python处理日期方法大全、三十种方法
使用 time 模块展示当前日期和时间
& e! P1 Q* X) H/ b
import time
1 s6 a7 ~2 }) W9 o4 H9 r
from time import gmtime, strftime
, E. S$ b( M; [& h: k/ y6 {, R
6 ?1 O) A# Y- u
t = time.localtime()
8 M8 E: p9 T( S, `8 O
print (time.asctime(t)) # Sun May 7 09:30:37 2017
/ D+ A- ^% k H- g9 \
print(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())) # Sun, 07 May 2017 04:00:37 +0000
% E/ Y O2 h7 {4 o
print(strftime("%A", gmtime())) # Sunday
& Z& V5 J8 o! [5 W) M% n
print(strftime("%D", gmtime())) # 05/07/17
9 q+ Z" x7 M' ], M4 m5 E3 `$ X& b% K
print(strftime("%B", gmtime())) # May
( E" _/ N; f( b: v4 I
print(strftime("%y", gmtime())) # 17
) }3 P9 [+ l1 @
# l) f& l8 n+ t/ m! D' r
# Convert seconds into GMT date
! Z/ l9 a; r4 t2 S( C
print(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime(1234567890))) # Fri, 13 Feb 2009 23:31:30 +0000
% _6 h3 Q. |( L. ~7 z G; J
9 o/ k0 g$ {3 E: N
二、将天、小时、分钟转换为秒
4 C, a: g: N- j. F8 D9 k# v4 ^
SECONDS_PER_MINUTE = 60
9 ]6 @( \6 u( _/ E* D
SECONDS_PER_HOUR = 3600
( n; P0 U8 q! l: q. X# V. S9 L0 m, x
SECONDS_PER_DAY = 86400
. x8 n3 t& c5 P9 G/ ^
]3 m& ~) _& T; M, ~' I0 M. D
# 输入天、小时、分钟、秒的数量
5 @ `; N Q- o3 S9 t
days = int(input("Enter number of Days: "))
9 Y) H# P, x1 J" l1 M7 u. `
hours = int(input("Enter number of Hours: "))
5 U/ `& p; y& [; _, {
minutes = int(input("Enter number of Minutes: "))
2 M3 Y8 O( ^! F
seconds = int(input("Enter number of Seconds: "))
* E/ t: P! h. I; S% t
( Z7 Z0 o" x1 o2 c
# 计算
3 q' v( J1 b, U6 f V
total_seconds = days * SECONDS_PER_DAY
- n3 B, e# `5 W* `3 o$ Y
total_seconds = total_seconds + ( hours * SECONDS_PER_HOUR)
6 H; O8 f/ r% L0 x$ c
total_seconds = total_seconds + ( minutes * SECONDS_PER_MINUTE)
9 o# W& V& | c. m
total_seconds = total_seconds + seconds
6 l- ?' X- r2 j% r9 @" x2 i
! o- w7 o* x# Z' m2 K7 {) T5 g
# 结果
2 Z# q/ M9 e5 @) m! b# ^# B+ W, s
print("Total number of seconds: ","%d"%(total_seconds))
3 ?7 H a' J2 E6 C" z9 X
'''
/ L' M) x. n& o0 n
Enter number of Days: 5
' e4 K1 u. i& r- f
Enter number of Hours: 36
! Q# ^- n0 m: H' p
Enter number of Minutes: 24
; j4 T/ ]+ t \# U2 t, o& ?
Enter number of Seconds: 15
) U& j) V9 f1 p8 r2 ]6 O0 S% Q
Total number of seconds: 563055
6 w! j& U2 V. l! d
'''
/ g7 j9 h" X& g! u
3 A# {9 c. o! M# k
三、使用 Pandas 获取当前日期和时间
" T7 T) y: C5 d: B; [
import pandas as pd
" p( D& c5 M: r5 m8 \9 S
print(pd.datetime.now()) # 2018-01-19 16:08:28.393553
3 P5 W5 v7 }# i8 i9 v0 [$ k5 w6 U E
print(pd.datetime.now().date()) # 2018-01-19
6 l( A; k8 z8 t' `
print(pd.datetime.now().year) # 2018
, K$ k; P! e7 ]! T" \# Y7 j& e
print(pd.datetime.now().month) # 1
3 q' Q; ^, \. G i
print(pd.datetime.now().day) # 19
' ?- T6 @6 O1 \& y1 ]8 o
print(pd.datetime.now().hour) # 16
3 }* P. A! b: T* q# y3 f3 R
print(pd.datetime.now().minute) # 8
% h" j% k* A2 z% I( g% P) Y. ]) c
print(pd.datetime.now().second) # 28
9 C+ o: E) j B+ a+ E
print(pd.datetime.now().microsecond) # 394553
6 H, j9 J9 j# R$ Z+ z
- p; ?/ m# F8 U I
四、将字符串转换为日期时间对象
2 H2 w4 n; S( V# y3 g0 G
from datetime import datetime
. V& X0 N$ P4 d* T1 x
from dateutil import parser
' ~5 }0 b# f) t- P, J, l4 l
* t# n b! f4 W
d1 = "Jan 7 2015 1:15PM"
) g0 u% w- H" O( Z4 j
d2 = "2015 Jan 7 1:33PM"
8 f: k% B& I6 [: u
; j+ Q8 T9 A, J/ H+ z% Y+ g/ K( o; b
# If you know date format
+ ]1 d4 I2 {" A! f3 c) R) ~
date1 = datetime.strptime(d1, '%b %d %Y %I:%M%p')
0 Y6 }7 B0 m3 P: D! A& c5 X
print(type(date1)) # class 'datetime.datetime'
6 e6 a5 K2 c+ I8 b1 r; m8 k
print(date1) # 2015-01-07 13:15:00
/ t. {( k( Q( m: v3 o* U/ {
) _ p8 a1 \5 ^, ]: [
# If you don't know date format
+ t/ F' t6 n# a$ c6 ?
date2 = parser.parse(d2)
; [/ E4 V( j3 C( X
print(type(date2)) # class 'datetime.datetime'
3 g: o& z/ O Q* J. G7 Q
print(date2) # 2015-01-07 13:33:00
! d$ W$ r2 }; ?+ q' i
P& L# u3 a. L# W1 R! k
五、以毫秒为单位获取当前时间
! e# n) B# A( @) z. s
import time
# A! E2 p' X$ E0 T9 [
- w9 `1 \4 v/ R. @) Z/ g) e
milliseconds = int(round(time.time() * 1000))
: t: Q: n( n; }: C7 a8 N8 U0 j
print(milliseconds) # 1516364270650
- f+ S4 X/ u( \* y$ L, D Y9 @
( [) Q0 d5 A* W- ]; J
六、以 MST、EST、UTC、GMT 和 HST 获取当前日期时间
" d4 a, q$ u( J* }
from datetime import datetime
2 x- F4 E9 T4 h% ~1 C1 E% v
from pytz import timezone
! T2 o1 u! N2 I! ?) K& [
) B/ q! T8 Z t' C1 ~
mst = timezone('MST')
5 l# H) r& C" U+ T' l( |, K" v1 G
print("Time in MST:", datetime.now(mst)) # Time in MST: 2017-01-19 06:06:14.495605-07:00
9 A2 d( F* Y$ Q% f# ~7 V |
est = timezone('EST')
' E8 V! S7 |3 w/ z% X
print("Time in EST:", datetime.now(est)) # Time in EST: 2017-01-19 08:06:14.496606-05:00
& ]$ ~5 [+ }, q
utc = timezone('UTC')
; G# S' p* ]% J! q1 d
print("Time in UTC:", datetime.now(utc)) # Time in UTC: 2017-01-19 13:06:14.496606+00:00
. k( H5 h) f0 I0 z# ^% Q5 J- G* ]
gmt = timezone('GMT')
3 y5 L1 }( [" j& E% ]* v
print("Time in GMT:", datetime.now(gmt)) # Time in GMT: 2017-01-19 13:06:14.496606+00:00
4 N% b" m4 _7 S& U1 |4 ^1 j# I+ |: ]
hst = timezone('HST')
8 o3 j) @9 p" K; B9 a G: p
print("Time in HST:", datetime.now(hst)) # Time in HST: 2017-01-19 03:06:14.497606-10:00
% {; t6 ~& `) s& S+ E
9 c6 L4 ~8 q, h* ]
七、从给定的日期当中获取星期几
Y5 Q. V) o R6 M7 o- q4 W
import datetime
8 a& ]5 _0 y/ d7 b
9 e$ ]( M/ \/ A2 C& S0 I+ C) i! n
dayofweek = datetime.date(2010, 6, 16).strftime("%A")
. w6 j, L# `, p+ U6 ~
print(dayofweek) # Wednesday
3 R5 b( V5 S5 D
/ ?1 O. Q$ _* G; ~
# weekday()方法: 0代表周一,6代表周日
( {5 b! F0 f" Z J' U
print("weekday():", datetime.date(2010, 6, 16).weekday()) # weekday(): 2
, R3 T4 x" F$ v& Q! K/ O$ d
! d- d$ Q( f, h7 d8 |7 G
# isoweekday() 方法: 1代表周一,7代表周日
* Z Z/ a4 U S8 T8 p4 p k$ _
print("isoweekday()", datetime.date(2010, 6, 16).isoweekday()) # isoweekday() 3
, w+ H! ^! S; H7 b8 a& L5 @
( q i4 [/ ?9 \# l S8 ]
dayofweek = datetime.datetime.today().strftime("%A")
& s6 G; B$ i9 G( H6 j" B
print(dayofweek) # Friday
7 ^8 [; v; n, J/ O9 j7 i
print("weekday():", datetime.datetime.today().weekday()) # weekday(): 4
% ~ Z9 d' k) w
print("isoweekday()", datetime.datetime.today().isoweekday()) # isoweekday(): 5
1 f" P: @# }+ @( }0 _1 X+ o
. F# |9 f: V' L/ }; M# j; ]* N( r1 q$ D
八、计算两个日期时间对象之间的时差
2 l$ w9 X' @; t; G
import datetime
, z, S2 Q0 t" R$ _3 ~; ^4 U3 a7 l
from datetime import timedelta
; y2 z( [9 J' Q8 H( ]* ]
* d% M- D7 A1 H0 O R3 _
datetimeFormat = '%Y-%m-%d %H:%M:%S.%f'
6 H/ _0 U9 A P0 |
date1 = '2016-04-16 10:01:28.585'
5 |: H4 N O0 ]
date2 = '2016-03-10 09:56:28.067'
' C6 K+ V' k$ T/ M
diff = datetime.datetime.strptime(date1, datetimeFormat)\
8 f# o% J4 D. M* p8 T8 }. R" c
- datetime.datetime.strptime(date2, datetimeFormat)
+ K! A5 T4 m( @/ O; [$ o) V5 \5 _
7 G$ F: {+ d# `" I1 v# p# s L2 n
print("Difference:", diff) # Difference: 37 days, 0:05:00.518000
& d3 s4 q) D2 m0 Q9 c5 R3 |
print("Days:", diff.days) # Days: 37
/ J# Z& t* {' ?( z' D8 m0 T
print("Microseconds:", diff.microseconds) # Microseconds: 518000
/ o+ S4 o) w2 \# w
print("Seconds:", diff.seconds) # Seconds: 300
( P4 p% l4 {: @9 I) U+ N# i7 J* }
7 [4 V( ]% Q4 K' t- u4 S
九、将 5 分钟添加到 Unix 时间戳
( D2 Y+ C: d; B: V; W, d
import datetime
9 j9 v% W3 D4 b! Z" @
import calendar
* e) ~- E/ Q! O; W. _* D
2 x% T! g8 z% W3 B/ k
future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
1 G' B7 a" @3 A5 U
print(calendar.timegm(future.timetuple())) # 1621069619
( G! _4 ?6 r) X3 } O: L* P1 g
3 P6 @1 ]9 N _ |& J1 q& p4 p
十、遍历一系列日期
# s N N5 u6 V& ^
import datetime
; U* e5 C( i8 p8 N, G) E) C/ A
. M: }* k: m3 R: i
start = datetime.datetime.strptime("21-06-2020", "%d-%m-%Y")
+ x6 N) H. \: u7 j- I! K
end = datetime.datetime.strptime("05-07-2020", "%d-%m-%Y")
- o: _0 ?+ ~, ?# r: M
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end - start).days)]
; g3 E7 U7 {1 r8 u8 e$ Z
) Y" n4 ]" r. H0 R: ]
for date in date_generated:
/ j0 f. Z5 g! i7 J: @
print(date.strftime("%d-%m-%Y"))
( [& l* ~6 G, t! e. q5 R$ b3 o
3 \. h6 _2 t9 T5 y: V& l' b2 @9 }
十一、巴黎时间更改为纽约时间
3 A8 Q. J6 u/ B
import pendulum
8 L' o( q, o9 {5 V$ D. ?
/ O3 K4 ~( J) [% }
in_paris = pendulum.datetime(2016, 8, 7, 22, 24, 30, tz='Europe/Paris')
# {/ O: }. E0 h
print(in_paris) # 2016-08-07T22:24:30+02:00
0 Y! T4 ~+ Y3 d0 s$ f
6 s7 C5 K1 f7 N) j
in_us = in_paris.in_timezone('America/New_York')
, j5 I4 Y4 } C: d
print(in_us) # 2016-08-07T16:24:30-04:00
7 j+ y$ [# m- U* S0 I1 \3 S
7 W/ `% D2 R/ L
十二、使用 Python 获得最后7个工作日
* b O) M4 Y5 _& |$ N
from datetime import date
" [& G/ q9 d# l/ f" Z
from datetime import timedelta
8 b# r; @# A0 e1 ]$ U3 W0 s
( G- t% {% z6 Y6 u
today = date.today()
2 l7 `) h1 I+ Z/ S4 `& i2 {1 Z
$ K* H. M: c% B9 D2 A
for i in range(7):
# u# C. q1 ^: }$ p7 v
d = today - timedelta(days=i)
2 F( i$ q0 K0 w+ [
if d.weekday() < 5:
) W8 v2 h/ ?" O C
print(d)
( Z! K) @1 B& ?8 f
7 Q/ Z- y3 `; t# J. f
十三、从今天的日期和一个人的生日推算年龄
1 ]& K) h0 S% S; I5 Q
from datetime import date
/ Y9 ]5 c& [9 S" V, D4 }
$ { t( @. v2 Q! T3 p8 n0 V
$ e3 M+ _- P5 S2 J' i
def calculate_age(born):
* l4 Q- F. L" N4 g8 s, y6 z B
today = date.today()
* G' y2 v4 s/ F3 w+ }; z0 w
try:
( R0 n; q% w/ X8 I1 O
birthday = born.replace(year=today.year)
& v/ H7 G1 r! t, X0 L9 j
except ValueError:
! C# d7 U+ Z/ C2 S
birthday = born.replace(year=today.year, month=born.month + 1, day=1)
6 B9 \: h& p2 A0 N0 k v, ?5 |0 u% Y b
if birthday > today:
9 [( @ q6 C$ [; U Z; s
return today.year - born.year - 1
8 ~2 Z; k# n8 |" Z* ?. t. t- Q8 l; q
else:
% @1 D6 u+ g% c( h3 d' _
return today.year - born.year
! V2 m0 |6 C& b' l
" n( C0 c X, q, Z4 Q- ]& c6 f7 y
6 c. J1 H( l2 W
print(calculate_age(date(2001, 3, 1)))
1 ]" ?( Z+ k7 t; ^
. g; d& U3 C8 o9 e% @
十四、获得本月的第一个星期二
% u1 Q+ r: G( a9 M
import calendar
8 X8 Q9 e: v* x: z% v6 \' l1 o9 i5 h# H
from datetime import datetime
9 Y' i N$ I8 v7 `) t3 F
, q1 {- R/ ?& ^, d9 w
c = calendar.Calendar(firstweekday=calendar.SUNDAY)
. q' J$ W* p$ I9 R4 G
monthcal = c.monthdatescalendar(datetime.today().year, datetime.today().month)
8 f& o7 {2 H4 M5 c. y
#Python小白学习交流群:153708845
8 i6 A8 ^- j( n2 k' O3 N
try:
' S* N, y6 Z3 B0 I/ O
tues = [day for week in monthcal for day in week if
; I3 D% u+ f+ ~1 V5 X( R
day.weekday() == calendar.TUESDAY and day.month == datetime.today().month][0]
' V2 M: t0 Y/ e' p8 S5 l
print(tues)
# |' ?5 b1 o+ R& T" I& _4 t
except IndexError:
, o9 c# V7 {& \. h" X& c
print('No date found')
- i" a# o# ^3 u0 z1 n
- `5 I8 U" g { F
十五、将整数转换为日期对象
$ E: T8 I5 i. ~5 l- A h
from datetime import datetime
! u. ` J) c8 B* G9 P0 @/ [
5 Y$ [! w, }, z" ]- Z
i = 1545730073
$ k2 V7 e& D. B! c0 t- I
timestamp = datetime.fromtimestamp(i)
( L" q6 I5 {: [! X8 B" P. E
; c5 H5 b9 f, d( a
print(timestamp) # 2018-12-25 14:57:53
! E# u& F# k3 T' y+ J* _
print(type(timestamp))
3 ?% q' W0 `( |" Z8 e: j, N
5 {) u& i9 L& O% R. j5 i
十六、当前日期减去 N 天的天数
- J4 Y; j- @' w; b& B' t
from datetime import datetime, timedelta
7 m8 I" A+ p( V9 ~; |# D. c7 R
, x- `3 v/ [) g3 _ P# J) L" H
d = datetime.today() - timedelta(days=5)
, o9 s5 N$ z3 e/ Q
print(d)
" K& e% g& |7 G4 {0 G
5 S9 O2 S% q' b; g3 `& ]: d& z
十七、比较两个日期
# }- F, x5 N' X
import datetime
" J4 g+ i& ]+ Z* u7 Q/ f1 B* V
9 {; H0 ^. ^9 G' Q" u: b
a = datetime.datetime(2020, 12, 31, 23, 59, 59)
" g3 Y* o+ L/ o0 n6 Z
b = datetime.datetime(2020, 11, 30, 23, 59, 59)
, ^" M) {2 Y0 y) A2 n
' E6 E* S7 s @" M* v& t4 F: o# s
print(a < b)
0 |) u* e* p! k! D& i5 V
print(a > b)
/ ~6 G- \. B @* U) b# q$ h; L
& W7 v) H8 h4 n* T. k2 `% @; d
十八、从 datetime 对象中提取年份
* ]; c! m6 F1 |$ }( l/ M5 h7 {
import datetime
- v! K2 {0 N5 f8 ? ^ G0 \8 `
* f( i1 A2 R- F X: K! Y
year = datetime.date.today().year
# q+ t4 J# T- F) l2 W
print(year)
0 R- _& y. d( C' R3 }
: K; A1 Q. p+ m" m. Y4 `
十九、根据日期找到星期几
% u; T" M6 L/ r+ s" }
import pendulum
7 o1 y* }% d, U |+ W; C% b* l
- l4 X% M4 T. s4 |% H& Y6 a
dt = pendulum.parse('2021-05-18')
- Y: v- Q+ c+ g4 ~3 j
print(dt.day_of_week) # 2
' D# \2 P E) a, i9 B7 j8 e
' s. B) t3 r$ Q% ~& g% {$ F8 T( |
dt = pendulum.parse('2021-05-01')
0 p7 e; W5 d& V/ c0 q: J8 f
print(dt.day_of_week) # 6
) D* O2 T# g% y* a6 y
7 x7 L. I( [4 X$ i! x! g! A
dt = pendulum.parse('2021-05-21')
+ X6 h6 c2 a5 Q! L9 B# Q h
print(dt.day_of_week) # 5
7 u4 n8 s) l A/ h! G: X
1 O6 e R" v& }+ W/ i
二十、从当前日期获取 7 天前的日期
& [: N& A3 E& W6 F4 k# B
from datetime import datetime, timedelta
3 j0 p9 D u5 U
( S9 m7 Y; \7 _6 M& @
now = datetime.now()
* j; W0 c0 l6 M, ~ x; ]5 Q
2 t0 M9 N7 F/ r4 }
for x in range(7):
( ~: T; l( ~ D6 t8 f" V: \
d = now - timedelta(days=x)
, b2 D2 }+ W7 m
print(d.strftime("%Y-%m-%d"))
$ y6 P/ R) M* N- K2 p" w
* ?$ n' ^5 x* p6 S- F
二十一、将两个日期时间对象之间的差值转换为秒
& {' m; {# i' N" Y* T* b
import datetime
/ l5 e7 i5 x2 z/ D* V' i) _- y
! f& Y) f& R! l1 ]+ K4 a* X
time1 = datetime.datetime.strptime('19 01 2021', '%d %m %Y')
: H1 L! q0 f7 _8 T8 u# v5 A! R
time2 = datetime.datetime.strptime('25 01 2021', '%d %m %Y')
0 z1 g" J3 x7 P! L9 @, w) n+ g
8 d" s1 x! M! @5 R6 q6 A3 P
difference = time2 - time1
+ E8 f: s1 k4 C) J# h; b- U: c
print(difference) # 6 days, 0:00:00
: F4 l' r4 J8 I9 h6 D
H4 [. ^ Q, X8 K' x# i
seconds = difference.total_seconds()
L: p5 N5 a" t
print(seconds) # 518400.0
0 K- @2 M9 o0 Q% N* k5 r
( s6 @+ Y" d! G; h
二十二、获得任何一个月的第N个星期五
3 e. S6 @9 A1 V7 u
import calendar
' ~/ Z* L! Y( ?! G$ i! l
/ \8 x: T5 Y( c: W# x6 W) [6 m
# 取2021年5月的第三个星期五
( f8 m; x1 N4 P7 j& [8 U
c = calendar.Calendar(firstweekday=calendar.SUNDAY)
1 i" Z& l: w0 I0 G+ K
year = 2021
; D. s) H1 `5 w; ^
month = 5
; x% T* Y: o* ^0 [9 T! P
n = 2 # 取第三个
# p: |3 {* X3 b, Z# Q
monthcal = c.monthdatescalendar(year, month)
' v! ?8 G2 N+ O- q
$ K# T5 m5 C; X8 n, g
try:
+ I7 z. g( K2 ^" p+ H
third_friday = [
7 g N0 I/ h& r0 E$ Q4 T a
day for week in monthcal
1 Q8 t" m: S( ]6 u5 V0 m2 L* g( ^
for day in week if
3 i+ T4 g3 a2 r
day.weekday() == calendar.FRIDAY and day.month == month
$ x! M6 L7 [8 V- [, L
][n]
( s# F9 L' d4 j K
print(third_friday) # 2021-05-21
w, X" D5 m/ L. n9 j5 \
except IndexError:
2 W( V! v5 v6 v y7 i$ G
print('No date found')
. k1 u' L7 X2 n9 M$ F4 n+ F
% ^8 M' Y1 w$ P
二十三、根据周数获取日期
: e7 i, W$ t; l3 Q
import datetime
" T) A" q6 t9 y, i( v3 J, {8 e( z& N
from dateutil.relativedelta import relativedelta
! [3 W6 Z" n. z, x
$ v& s ^: \. Q; G* t
week = 25
% j6 a, c4 I! n$ e1 E6 I
year = 2021
% ^ _" F+ P: b7 N u- Z
date = datetime.date(year, 1, 1) + relativedelta(weeks=+week)
5 N R8 t" j3 _2 S: u
print(date) # 2021-06-25
8 u% j9 W+ h) J4 I' d8 M" X" J
6 v: |9 N( j) n- L/ c
二十四、获取特定日期的工作日
# ~" t0 g2 z( f7 s" K% Q0 [; Y/ E
import datetime
# K/ q0 h% Y& U/ i+ n; J4 u
* p& t/ i) t' X$ d
print(datetime.date(2020, 5, 15).isocalendar()[2]) # 5
! ~; k. E6 z: l$ q8 }! K/ Q
( g }6 X2 O8 v$ c- Z
二十五、创建一个 15 分钟前的 DateTime
3 u! ]5 @3 k$ q$ e+ g% L
import datetime
0 J; w6 p- P& ~' X _
#Python小白学习交流群:153708845
: X. s0 A- E1 R
dt = datetime.datetime.now() - datetime.timedelta(minutes=15)
9 d: a: ^; d- k
print(dt) # 2021-05-15 22:25:55.897365
, U( C9 f& Q: u* e
7 O. }. g* |% E: v3 I& c
二十六、从特定日期获取周的开始和结束日期
1 z6 M; L1 A, L
import pendulum
" R. L0 C3 @" k8 [2 d& M" _
* K7 @5 x9 @# n6 Q2 F b
dt = pendulum.datetime(2012, 9, 5)
& e! Z! s8 i# R' q
* [# H4 p# Q, Y
start = dt.start_of('week')
% y& b( `2 y! ]- K; v6 N6 q
print(start.to_datetime_string()) # 2012-09-03 00:00:00
1 G2 |3 C5 z6 n& [+ i9 z3 k0 u
# g3 Y, O, r9 b( v% S8 f3 o
end = dt.end_of('week')
8 F+ d9 `# M0 c3 L6 M \+ A
print(end.to_datetime_string()) # 2012-09-09 23:59:59
0 W n6 q' u) m) D' B3 X/ k% n0 c
0 t, i+ t& K; r. r4 G
二十七、两个日期之间的差异(以秒为单位)
/ r* k; V3 u) ^+ A6 ]
from datetime import datetime
+ N" u+ i, W/ r$ t* }
#Python小白学习交流群:153708845
3 t# U' d3 q3 O) t
fmt = '%Y-%m-%d %H:%M:%S'
3 ^4 M. Q: G! e# q
d1 = datetime.strptime('2020-01-01 17:31:22', fmt)
3 l; |; j9 k& u6 D3 ?+ I
d2 = datetime.strptime('2020-01-03 17:31:22', fmt)
2 O) n, w9 m0 J$ Q3 K: R
4 z5 O4 S! W, F) @
days_diff = d2 - d1
' P7 o/ m! Z+ G- J7 ?
print(days_diff.days * 24 * 60 * 60) # 172800
( @3 ~3 d j; c$ \4 F% [9 Q8 t$ b* _
% `% ^9 P9 p" Z
二十八、以这种格式获取昨天的日期MMDDYY
D: C# W4 ~% l% a1 x& }4 K
from datetime import date, timedelta
7 c# r9 i9 w/ X' A1 h
/ W/ ~6 M0 a5 x0 ~; F
yesterday = date.today() - timedelta(days=1)
; j |7 ?8 C: ]7 v, J7 x+ O1 d; c" ?
print(yesterday.strftime('%m%d%y')) # 051421
: O( H7 [/ Y* ^& q% o& H
2 T' c- r' ~, k7 w- K7 A
二十九、根据今天的日期获取上周三的日期
b2 `9 N2 {) N1 f, g# S8 E
from datetime import date
8 A4 f2 w! y* i* z1 e. o) h- Z
from datetime import timedelta
5 N+ B, w0 p& [$ q, d% \7 \% f- _
5 [' j: Q4 I; w* x& P
today = date.today()
# L! N y1 o ^
" \3 m }/ w3 G
offset = (today.weekday() - 2) % 7
5 \6 q: f c* \6 \' }
wednesday = today - timedelta(days=offset)
3 r& [4 S: w" O8 u8 p2 n+ C
print(wednesday) # 2021-05-12
1 F/ V; q" M+ ^
; H$ q8 R2 d# l; J: ~# W
三十、所有可用时区的列表打印
* t2 f- r* l7 C7 F$ f# ?; a. k
import pytz
% U% I: p% W: y* F: ?
+ U; ^; t6 u6 f* [% u) C0 D9 k
for i in pytz.all_timezones:
: }8 a! O0 L7 v3 d8 H
print(i)
7 \4 \ `% k( h$ U) Q
T/ e2 F' O4 M9 D( F4 s
" Y* ~: k5 l9 d/ G
* s# t3 _9 c4 v7 V. ?, t
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5