数学建模社区-数学中国
标题:
Python处理日期方法大全、三十种方法
[打印本页]
作者:
2744557306
时间:
2024-3-22 11:30
标题:
Python处理日期方法大全、三十种方法
使用 time 模块展示当前日期和时间
. |. X+ B9 D* L- I' q
import time
6 L5 a& ?$ u/ y, _
from time import gmtime, strftime
, Z9 T3 z' t+ S, V
3 e- K+ I0 P, ^' R
t = time.localtime()
6 u: I0 Z M' x
print (time.asctime(t)) # Sun May 7 09:30:37 2017
& D% X6 S: d3 a5 u" Z& d. D
print(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())) # Sun, 07 May 2017 04:00:37 +0000
2 r( ^7 a4 l8 \- {+ o
print(strftime("%A", gmtime())) # Sunday
& e' P" \& x2 p% {1 S
print(strftime("%D", gmtime())) # 05/07/17
' h# ~- [5 P5 ~8 [8 r
print(strftime("%B", gmtime())) # May
, L! x X3 @! K& H1 m
print(strftime("%y", gmtime())) # 17
$ c! D9 U% `8 A8 u& M: ]
# _6 W: H9 L( {% X) p$ j: t/ ~
# Convert seconds into GMT date
7 ~( y. k0 W) ~3 q
print(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime(1234567890))) # Fri, 13 Feb 2009 23:31:30 +0000
* N$ N' W" D. C# ^9 j
* e0 o2 `* L- s9 |, ]! Z5 I
二、将天、小时、分钟转换为秒
1 I7 F; | N) ?7 n7 i5 A
SECONDS_PER_MINUTE = 60
6 e7 m: y3 _ f- [3 R7 X) z) t
SECONDS_PER_HOUR = 3600
: `3 G+ h. i4 H7 j. s3 l
SECONDS_PER_DAY = 86400
: P7 c; N2 g o: p, M1 g5 z
) F y x/ g) s
# 输入天、小时、分钟、秒的数量
6 a( D( i* c; l
days = int(input("Enter number of Days: "))
8 ~8 Q2 G% P( z3 [* ]
hours = int(input("Enter number of Hours: "))
: Y- {/ i. b$ n& l1 H
minutes = int(input("Enter number of Minutes: "))
7 b, E% e# q" U: U$ K
seconds = int(input("Enter number of Seconds: "))
' a! C5 q1 A+ G4 ]6 E) J. d
. i1 U1 w1 v" I
# 计算
0 H) s* R; z9 B, ~/ p! Q
total_seconds = days * SECONDS_PER_DAY
/ ]; [, u, c3 @( W
total_seconds = total_seconds + ( hours * SECONDS_PER_HOUR)
- o5 s! r; v/ |4 H/ b6 E6 r# R( D
total_seconds = total_seconds + ( minutes * SECONDS_PER_MINUTE)
) p# ~; @$ U8 Q8 q: m: ]
total_seconds = total_seconds + seconds
; F. S+ {/ k0 {. b
# D5 b& O+ H" W9 W2 z: v. I
# 结果
/ e+ s9 G% G$ y. ^0 M: q( P7 K& S
print("Total number of seconds: ","%d"%(total_seconds))
5 P1 ^2 ]3 Y7 S0 m& N0 f4 T3 J
'''
C) I; u1 |) `3 D1 G& b% |
Enter number of Days: 5
9 d5 J* @( y( W) w4 y. u% C
Enter number of Hours: 36
3 Z2 H; l% }1 ~% _, Z3 R& t' q
Enter number of Minutes: 24
+ ~/ l' ?+ s, V* \2 ?
Enter number of Seconds: 15
2 h( u9 c5 W1 h; C: C
Total number of seconds: 563055
7 A3 z) }2 k3 E- @3 \
'''
3 E/ n3 E. U( |$ l3 n2 g6 q- L
% s+ V0 h' d2 S- {: {8 b5 `
三、使用 Pandas 获取当前日期和时间
; C- p' L% x! z' _0 d# `
import pandas as pd
G; ~4 D9 I* r7 _& E2 C1 @
print(pd.datetime.now()) # 2018-01-19 16:08:28.393553
1 n, f- [0 [* s9 O/ H
print(pd.datetime.now().date()) # 2018-01-19
! x/ R" l# ~) f; M0 ^
print(pd.datetime.now().year) # 2018
* Q# n: V7 m s' ]& V
print(pd.datetime.now().month) # 1
+ Z. U9 D8 T: ?- v& x
print(pd.datetime.now().day) # 19
% a+ q0 u' S4 @$ i; j
print(pd.datetime.now().hour) # 16
6 k1 {0 D# m% G6 }6 P A
print(pd.datetime.now().minute) # 8
* g- U* j( `7 F+ `- Z
print(pd.datetime.now().second) # 28
+ A d. L6 P. O X' y! D D# z
print(pd.datetime.now().microsecond) # 394553
: N9 S# _, M6 e" G$ v6 g
; e5 {0 N0 Y/ u
四、将字符串转换为日期时间对象
6 Y& J2 t( `, H( m. U* N! r
from datetime import datetime
- A) P, ~2 O, U+ {0 _
from dateutil import parser
. i: f* T T3 P7 C( {
5 U# x+ ^/ s% }
d1 = "Jan 7 2015 1:15PM"
1 f* a$ p7 S3 M) e6 N9 z
d2 = "2015 Jan 7 1:33PM"
! G' U( A' {4 c. e
% g) z+ C( m! f4 D
# If you know date format
. T, k9 b" I m6 u5 ^) y* k
date1 = datetime.strptime(d1, '%b %d %Y %I:%M%p')
/ S- e1 o: L0 }+ a0 r+ r3 s7 I
print(type(date1)) # class 'datetime.datetime'
! J; e, j( D3 }/ ^" e" d
print(date1) # 2015-01-07 13:15:00
2 r* Y9 i; X2 L& ^- i
7 q, S* s0 y$ a C( q
# If you don't know date format
" d/ ^; {0 P% E7 m& B( x; ~
date2 = parser.parse(d2)
. @# i+ P- L! A2 V! ]
print(type(date2)) # class 'datetime.datetime'
9 p) Q( k E( V! W y4 ~$ ?1 \
print(date2) # 2015-01-07 13:33:00
- }4 x- u% K' C: W7 a0 ]/ u& }
( T! K5 {; r& ]7 \
五、以毫秒为单位获取当前时间
, f4 ~+ g% M" a8 r: s4 x$ ?
import time
! j' Y$ n& }' T2 ]# X( \* _
0 W# k: R3 C9 Y0 L; X
milliseconds = int(round(time.time() * 1000))
7 ]. q% E1 ?# \5 n" i
print(milliseconds) # 1516364270650
/ ]9 G" ?: j0 F( i6 p
+ G7 Y9 Q! n' ]: o
六、以 MST、EST、UTC、GMT 和 HST 获取当前日期时间
* C8 }, v: d, \; p! \ a& I
from datetime import datetime
' J6 q8 o2 p- i$ B
from pytz import timezone
# K: _1 C# T7 G1 v1 u
% k0 e$ B F8 [
mst = timezone('MST')
2 N( }/ G% I& ~/ ~; n) Z
print("Time in MST:", datetime.now(mst)) # Time in MST: 2017-01-19 06:06:14.495605-07:00
% J! ?7 e2 W F/ ?- z
est = timezone('EST')
$ c5 t1 Y* \. [5 N2 q
print("Time in EST:", datetime.now(est)) # Time in EST: 2017-01-19 08:06:14.496606-05:00
+ a; w- o+ o) _/ k. D }* t
utc = timezone('UTC')
2 c5 s/ C/ h9 Y' b2 |6 @; j& Z) X
print("Time in UTC:", datetime.now(utc)) # Time in UTC: 2017-01-19 13:06:14.496606+00:00
$ [* L8 J7 k. q" P; s
gmt = timezone('GMT')
6 g& P* M& l+ i: q! ?
print("Time in GMT:", datetime.now(gmt)) # Time in GMT: 2017-01-19 13:06:14.496606+00:00
9 H% [: x. x0 g6 B2 \* u
hst = timezone('HST')
( @3 V* @5 S( p
print("Time in HST:", datetime.now(hst)) # Time in HST: 2017-01-19 03:06:14.497606-10:00
! [& l2 Z+ ], j9 |: s, C+ \. I3 S
5 G* }$ w# y* T+ u
七、从给定的日期当中获取星期几
/ q; H K$ x1 h& a! u9 B
import datetime
- x5 o% ?. f5 t. ? M% [4 N
4 o) M' A5 @: m' a) g
dayofweek = datetime.date(2010, 6, 16).strftime("%A")
; d. V: z2 Y- N
print(dayofweek) # Wednesday
, _, N( [$ E2 l, x
! w8 ? A6 ]2 b3 C! \$ s
# weekday()方法: 0代表周一,6代表周日
/ Q5 L1 U) u6 b/ y
print("weekday():", datetime.date(2010, 6, 16).weekday()) # weekday(): 2
( ?6 ~! H& \4 w* J! |: R
" G- a. n0 I' W+ H
# isoweekday() 方法: 1代表周一,7代表周日
/ w) M5 s9 D3 r Y' g
print("isoweekday()", datetime.date(2010, 6, 16).isoweekday()) # isoweekday() 3
7 j0 ~7 r* t- q; v$ N3 T% l
, K. a: W- n+ \' d' }) E, D8 e
dayofweek = datetime.datetime.today().strftime("%A")
1 D; n- ] J/ A8 R& H- c$ N
print(dayofweek) # Friday
$ w' ?7 E1 g3 q. O; [/ t% n
print("weekday():", datetime.datetime.today().weekday()) # weekday(): 4
, f% e% Y+ t: V4 h, C! Q
print("isoweekday()", datetime.datetime.today().isoweekday()) # isoweekday(): 5
) w- E4 e, G" B' ]- f
) X; Q5 O# g, g
八、计算两个日期时间对象之间的时差
- o G U& j( B+ H' u! L, c! n
import datetime
( p( R+ d7 z x8 C( R! m
from datetime import timedelta
+ E( A: `5 _- J/ k _
9 K- L/ Q, s' b0 g) G0 J
datetimeFormat = '%Y-%m-%d %H:%M:%S.%f'
$ Q: n* S& A! V$ k: k
date1 = '2016-04-16 10:01:28.585'
& m8 Y# c8 q, B) c% k1 e+ M8 L
date2 = '2016-03-10 09:56:28.067'
" E7 a6 b# h8 [5 U+ N+ C
diff = datetime.datetime.strptime(date1, datetimeFormat)\
g/ `5 S5 ]& F/ Y
- datetime.datetime.strptime(date2, datetimeFormat)
2 _6 h7 a! u; |3 E/ H! T
2 H/ h' p; R( _
print("Difference:", diff) # Difference: 37 days, 0:05:00.518000
, l5 E9 S( W. Q
print("Days:", diff.days) # Days: 37
3 F2 r- U1 X% W! R1 ?
print("Microseconds:", diff.microseconds) # Microseconds: 518000
4 }+ R1 V9 f# p5 s1 b8 D& h
print("Seconds:", diff.seconds) # Seconds: 300
) h1 O4 F6 K7 l k8 l1 n
' G% O) R9 v5 E; o4 p! m
九、将 5 分钟添加到 Unix 时间戳
8 d1 V# }. E6 z- b" q
import datetime
9 F! H6 Z) ~* F, t5 L7 d
import calendar
A; w4 C9 W; q$ k, c9 b3 K
1 j/ l& H r0 d) _
future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
6 B& X x. c! J7 x) i
print(calendar.timegm(future.timetuple())) # 1621069619
& Y* A" h! Q1 h8 r- o' O. S6 P
3 A' n) C& K8 {# f9 j
十、遍历一系列日期
6 Q0 O2 Y/ r6 w+ B1 d
import datetime
4 o( f+ X/ K, D$ H' d! V
: Z" y" M! {: u4 {' j; M
start = datetime.datetime.strptime("21-06-2020", "%d-%m-%Y")
8 L& J4 E! L+ j" a' O7 {
end = datetime.datetime.strptime("05-07-2020", "%d-%m-%Y")
6 k; S9 `0 ]0 I: y
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end - start).days)]
6 }9 v5 q" k* k: C
# B- T2 Z3 x* |2 M; q% Q
for date in date_generated:
R/ n4 T) w W: i6 p
print(date.strftime("%d-%m-%Y"))
7 N1 n& |6 d* l
& I$ ~, \! `, T" T
十一、巴黎时间更改为纽约时间
" f8 U" c. g7 p$ B* \
import pendulum
) P6 r7 {* G% b- r. c' O
5 o# N9 o7 r- |" E
in_paris = pendulum.datetime(2016, 8, 7, 22, 24, 30, tz='Europe/Paris')
' D5 H. }9 R: p' {3 c8 P4 s. G
print(in_paris) # 2016-08-07T22:24:30+02:00
- W0 M7 o! `: `
( T* u- K- r" W& e* O! G+ c
in_us = in_paris.in_timezone('America/New_York')
' t, m+ k6 C8 | H9 s o2 ~
print(in_us) # 2016-08-07T16:24:30-04:00
6 c: S: W2 P) q* P
/ z1 p; [, U x" T) z* M4 J: w- D
十二、使用 Python 获得最后7个工作日
( ?) r6 h' i! G u* e6 x: v
from datetime import date
2 ]1 l& f. M7 C- r8 R: V9 H# s' v
from datetime import timedelta
! J! O" w& O1 S, E& B% t. ~- X
. \/ ]! V0 C4 V9 \0 c& c+ s' s" d
today = date.today()
! H6 [( ~8 z. J& u- D
) h$ M: _- q& N' ^; Q. o+ ~& g
for i in range(7):
/ e7 O6 l+ X) L+ g' D( S
d = today - timedelta(days=i)
4 c9 E4 C: l) S% ~! i, m) p
if d.weekday() < 5:
7 Q- Y$ C. v4 K# j& Q+ q1 T
print(d)
; Y/ `! i' O" v
. h, Z1 l: H, V4 R" o/ a: c
十三、从今天的日期和一个人的生日推算年龄
7 d5 `" p% m/ V7 P) L+ N
from datetime import date
h$ E/ Q/ M& k0 W' m
5 m3 X( e7 L/ f) A/ s+ k
8 n8 _9 ^9 x! H b6 ]1 K
def calculate_age(born):
) j6 C1 Y( y' |' E& d
today = date.today()
4 o% M! R7 w8 {2 E1 k" [
try:
5 G) a8 l- @4 b
birthday = born.replace(year=today.year)
' l, S* B: Y4 B! h; p, k
except ValueError:
3 I& q* ], w8 q% L
birthday = born.replace(year=today.year, month=born.month + 1, day=1)
; j1 _/ [" k' F$ s' N
if birthday > today:
' O! N$ w8 }% _9 r+ e+ m8 e8 K! u# ^
return today.year - born.year - 1
* q. [) b7 \8 S1 g5 k" B- z! @* B0 @
else:
) \9 R, R3 x9 j) Q& A
return today.year - born.year
1 I# z$ M+ {1 G2 ?# X
! Y* T* P- |1 h. W# @
- X2 B( T- f. V% K
print(calculate_age(date(2001, 3, 1)))
% F' y8 i+ z( i" }* Q
& P: `; x. @# C- A' a+ s
十四、获得本月的第一个星期二
- O7 A, Z% m4 V( `- t
import calendar
( |. {, z& _& I/ s! t2 G b
from datetime import datetime
8 U1 W3 z4 [$ x$ @- U* Q' c2 |
. D0 X- H# l* B7 ?, Y! _ v q
c = calendar.Calendar(firstweekday=calendar.SUNDAY)
0 S$ F7 k3 q* G7 T+ h/ U+ v: j) p7 n
monthcal = c.monthdatescalendar(datetime.today().year, datetime.today().month)
, s: W$ y# `5 t* w {
#Python小白学习交流群:153708845
$ Q+ w+ s" l0 n6 I, {
try:
R# c9 J! L& S
tues = [day for week in monthcal for day in week if
% z6 ^1 w# b- M+ ^9 A) y k
day.weekday() == calendar.TUESDAY and day.month == datetime.today().month][0]
* h" F3 k- g3 Q2 t; T
print(tues)
/ o6 i/ [; ]2 J0 W2 R' F5 @
except IndexError:
5 Q! [" m( `( C4 w
print('No date found')
* w2 y1 z4 x/ ]% T
; v* `' Q1 o$ p5 c7 Y7 D/ B; j6 t
十五、将整数转换为日期对象
0 A0 [% Y( e4 w, D2 Y, a3 Y. w; ~; Q: o
from datetime import datetime
5 r3 \$ u% C. N7 w' ^9 S+ _
7 \3 H0 d0 P1 p! l$ j
i = 1545730073
- w! t% e+ E& ?5 T3 I# @
timestamp = datetime.fromtimestamp(i)
8 A# g; j( {% o% {
, ^( c: p) w5 l1 ~$ l
print(timestamp) # 2018-12-25 14:57:53
$ g+ x% p) \3 x* `) S
print(type(timestamp))
9 T0 e$ b- j( E% r4 y, L
. u* l) X/ s7 M
十六、当前日期减去 N 天的天数
! `- a1 r- ?/ \% N
from datetime import datetime, timedelta
5 Z9 ]% M8 \1 y$ i* Z7 Z U
6 a; o' i; f. p) X
d = datetime.today() - timedelta(days=5)
: r/ @0 l6 i% {- e: s2 n
print(d)
1 C! Q6 m' U. E4 `' R
& M. C2 O& ]* a. j
十七、比较两个日期
5 ?! f, I1 e7 ~
import datetime
. Y; X# N( ~& }% b- J
$ i/ ~; @) D$ s5 a' m! X1 Q0 P; h8 h
a = datetime.datetime(2020, 12, 31, 23, 59, 59)
# n/ _" a" P1 C4 o- |5 Q2 R! P, r
b = datetime.datetime(2020, 11, 30, 23, 59, 59)
) h, ]9 v" F/ o0 c
3 S7 V- S* L3 r% S- c+ P X
print(a < b)
- n e* ^8 `" T( J" W0 L6 N
print(a > b)
0 z: e. h/ Z3 E+ `' j
) T* s4 S. ]! r3 |& q R1 ?
十八、从 datetime 对象中提取年份
) o) G0 r0 \9 w0 A$ Q
import datetime
% O$ v2 p' `6 M1 @
: T; ]- I* A8 w+ r6 G" n
year = datetime.date.today().year
9 U, l, M3 H3 c* c& ^. t. T0 Z- L1 z
print(year)
; K( ^+ l' D0 K6 ?# Y. O
2 X, }* I8 L% z) p/ H: _2 }
十九、根据日期找到星期几
$ W; A& g) K1 J ~! W
import pendulum
! T# B9 f8 h$ E9 p z' P; ?' G; B
5 T0 H. d7 Y. g2 ?2 g, V. J
dt = pendulum.parse('2021-05-18')
. \. _, J$ b/ m0 r0 h6 m
print(dt.day_of_week) # 2
* k5 N0 e$ g7 U- n+ `$ n
s- a- s, C- P2 C9 ]
dt = pendulum.parse('2021-05-01')
2 s& v' |# F6 ~" X1 p
print(dt.day_of_week) # 6
7 E# y" e! o" T# E9 e8 K
- {% y4 Y# L& M1 K; v2 Z0 y3 l, j
dt = pendulum.parse('2021-05-21')
5 X3 c* U6 C3 B
print(dt.day_of_week) # 5
0 s. e1 e- V) [) b
1 `' I2 E# V4 t3 a
二十、从当前日期获取 7 天前的日期
( P/ q! [9 o2 ~& Y6 V7 V
from datetime import datetime, timedelta
! t& I8 E, V6 @) c) I8 O
" R# L( e! b- m
now = datetime.now()
. h" N1 R- m* l
: \( S0 m8 n( {) j. L5 D
for x in range(7):
% e0 E% C4 ], `( B# C6 G! I
d = now - timedelta(days=x)
1 o% |- S% u6 p6 [
print(d.strftime("%Y-%m-%d"))
2 u. P9 N P5 q; @! z7 @: K5 ]
( C7 S" e/ j4 x( h$ `' |1 d
二十一、将两个日期时间对象之间的差值转换为秒
1 d0 T* x' j" U
import datetime
/ n& l9 w) r! A- D) N
9 K9 [4 o8 P* w1 Y( d6 A
time1 = datetime.datetime.strptime('19 01 2021', '%d %m %Y')
, t$ Q* v* i s5 O
time2 = datetime.datetime.strptime('25 01 2021', '%d %m %Y')
j/ k/ P+ o2 L' a" r& R3 d
h) s# ^) K" o
difference = time2 - time1
; E. T2 u; U: d; E
print(difference) # 6 days, 0:00:00
* f& T' i' g' f, p2 d
4 |; G/ P4 q, e0 X
seconds = difference.total_seconds()
/ G% p! h( \. y% _' c
print(seconds) # 518400.0
6 B. W2 K8 E e9 |7 [8 ~8 u
1 a0 s' u# u$ W) ]
二十二、获得任何一个月的第N个星期五
8 [- e/ \. N% R |. M8 k# L2 n% F
import calendar
# a# N; T* [/ q, U! h2 ^1 q
2 E9 e9 Q, c0 u2 A* Y
# 取2021年5月的第三个星期五
! w6 p+ {% ~4 H" {! ~
c = calendar.Calendar(firstweekday=calendar.SUNDAY)
! z3 S$ i8 q, | V6 P% @! H
year = 2021
3 |7 ~3 P( i" R
month = 5
+ \, z9 J! o$ A$ Q3 `4 M: y; \4 r# f, R
n = 2 # 取第三个
4 H5 G: ` Q& J2 J
monthcal = c.monthdatescalendar(year, month)
* Y) L# ^7 g/ d# x6 u
. l; l2 b( e1 Z
try:
9 o# T$ J& S7 N! T! f C
third_friday = [
7 b* C1 p/ l$ f h0 @ U8 T* h% O# s
day for week in monthcal
- ^4 }& ^& j+ X
for day in week if
8 k- J9 U8 _) t; ^) \7 ~, V; ^
day.weekday() == calendar.FRIDAY and day.month == month
" B4 M4 L0 u5 Y( {% ]
][n]
& M4 P) }7 n5 Z0 t, Q3 {$ E
print(third_friday) # 2021-05-21
) M% s7 V. l) M. ?( o9 r
except IndexError:
3 F4 [# W* ]& p' d& y( M7 x! ~, N
print('No date found')
( X. e/ g3 m& y u) O1 a0 q
8 s* n9 Y6 X! y' w
二十三、根据周数获取日期
- ~# A1 a. V( M" k& Q; q9 `: L
import datetime
1 W9 Q0 Q) d) X: D9 s$ D
from dateutil.relativedelta import relativedelta
$ p- _- H& |5 Y2 X
/ w7 F4 L8 [: v" |# M( ^
week = 25
( I/ ^: L0 p2 x% O6 f; H& S
year = 2021
9 V& R( ?4 _- u: c* V2 q' T! e
date = datetime.date(year, 1, 1) + relativedelta(weeks=+week)
9 u7 [! f3 X+ s* y& j9 y4 W' O$ y, o
print(date) # 2021-06-25
* N# d4 Z0 I* C+ b
?5 \0 }% y ]
二十四、获取特定日期的工作日
, J6 M7 U' B F! X) c* I* N
import datetime
* s+ q( d/ t6 U& ~3 g1 e$ B
; a! L; e, b3 J( Z
print(datetime.date(2020, 5, 15).isocalendar()[2]) # 5
' F$ q2 q7 @. b- P7 B' A0 v6 z% S
F) ]& ]% M$ D; h8 k' |* L
二十五、创建一个 15 分钟前的 DateTime
" b+ I' y$ o( j2 M7 u) ~1 S
import datetime
: d4 z2 ?3 @/ s" G; p3 O
#Python小白学习交流群:153708845
5 J6 E0 I N; S9 c* }7 A- [
dt = datetime.datetime.now() - datetime.timedelta(minutes=15)
# W; T. V+ _/ A7 i! m) I
print(dt) # 2021-05-15 22:25:55.897365
7 _5 C( e' O' y t0 T( y6 w, l
$ {" j: l7 u- P/ M; X0 z
二十六、从特定日期获取周的开始和结束日期
! v- v- N2 m& B; C; k, |
import pendulum
' b- Q9 N) x. A2 I) }- @
) G- v, g$ Z6 u i5 ]) `
dt = pendulum.datetime(2012, 9, 5)
9 }# }7 ?) M8 L2 n3 b1 ]
) }' f" G7 j* W4 V- g) j1 W
start = dt.start_of('week')
$ k* [& t) n* A6 @: @
print(start.to_datetime_string()) # 2012-09-03 00:00:00
# o9 V1 L( T# Z+ J4 o* x
; C3 @6 ]6 ^. |0 J$ U5 B; S
end = dt.end_of('week')
9 q) w5 u/ |4 |* u' I4 s) q
print(end.to_datetime_string()) # 2012-09-09 23:59:59
. I" p( g% _- ^) g
7 @# o/ t/ x# V- q; y' I
二十七、两个日期之间的差异(以秒为单位)
. M6 x) [: t9 Y; B3 D% a, m
from datetime import datetime
1 c: i- X8 O0 g) T! f6 R; w, j5 y
#Python小白学习交流群:153708845
`' U. Y' F' v i5 F
fmt = '%Y-%m-%d %H:%M:%S'
" k. A8 d5 }+ |- E; d4 }, W
d1 = datetime.strptime('2020-01-01 17:31:22', fmt)
1 w' `9 p% r( u6 B7 B/ J
d2 = datetime.strptime('2020-01-03 17:31:22', fmt)
R3 L' R/ B$ k
/ h! [1 J0 M& c; K$ W6 \; I
days_diff = d2 - d1
, A) N7 M+ k6 X! {7 b8 W! a
print(days_diff.days * 24 * 60 * 60) # 172800
/ |$ U8 r+ [. j( E4 R" I( p# a
/ i7 r. T2 }% }8 {3 h3 s3 h
二十八、以这种格式获取昨天的日期MMDDYY
% Y: V |6 `0 n1 J; O
from datetime import date, timedelta
6 Q9 ~! h7 I; v3 f; G0 H
/ m1 G' |( B4 D/ p
yesterday = date.today() - timedelta(days=1)
4 I* e! E9 c8 `) S; C
print(yesterday.strftime('%m%d%y')) # 051421
/ V( V) ?7 v$ W5 P5 f5 m) o3 }
$ X5 d. y% K6 M; Q: D
二十九、根据今天的日期获取上周三的日期
' C2 O' n* N) [
from datetime import date
7 {1 {3 P) n% ^+ y, f h
from datetime import timedelta
/ j8 c0 `$ s" _ a
, R1 u) }) `, a: _" e
today = date.today()
6 D: \9 P9 V0 L4 X7 q" q
) G" B9 H7 z. E0 b0 A
offset = (today.weekday() - 2) % 7
" s; M8 N" x3 t" E( C- c
wednesday = today - timedelta(days=offset)
! g0 Y. \" X/ {4 B
print(wednesday) # 2021-05-12
3 f0 R6 v9 C q" {" d3 z
$ Z1 j) x' }6 |
三十、所有可用时区的列表打印
% i5 a1 D4 Z- {
import pytz
3 D9 e L+ N" ^: P& ]9 y7 `0 t' F
9 Z7 Z( i! _" Y( v9 }, [
for i in pytz.all_timezones:
+ r9 {2 g9 h0 g6 [
print(i)
" S7 e" P+ I( z4 p
# ?/ Z# g7 M, d
2 M$ K) F/ @3 T- g* `2 p4 b" B
5 W( Z7 C; D( W- i' p
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5