QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2282|回复: 0
打印 上一主题 下一主题

Python处理日期方法大全、三十种方法

[复制链接]
字体大小: 正常 放大

1183

主题

4

听众

2909

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-22 11:30 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
使用 time 模块展示当前日期和时间
5 l5 t/ _# q7 h! Limport time( v/ Z: E7 I' U5 t' V
from time import gmtime, strftime
6 p& o! o* l8 V2 Z3 a( Z5 D7 W$ s9 ]# H6 K) R$ E: J
t = time.localtime()  
1 }* _6 H/ l; cprint (time.asctime(t))  # Sun May 7 09:30:37 2017; ]% ?5 a* h! R; D$ k9 O- s
print(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()))  # Sun, 07 May 2017 04:00:37 +00006 B! k3 ]+ v9 P  T
print(strftime("%A", gmtime()))  # Sunday
* I, v* Q- h* V9 W! ]print(strftime("%D", gmtime()))  # 05/07/17
% s' H2 X8 y' N7 S3 p4 t- Z5 iprint(strftime("%B", gmtime()))  # May( ?0 I; X8 P- c$ j4 K( r. A% J% u
print(strftime("%y", gmtime()))  # 17% N! Q2 _( s5 K9 _" |  j
! T4 U4 m7 |0 B  W, m! [
# Convert seconds into GMT date' o$ z2 ~- ?# J! a/ L
print(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime(1234567890)))  # Fri, 13 Feb 2009 23:31:30 +0000
" X! C3 {* ^* i1 j9 g  @
8 X( P3 G% H- J+ ~: D! Q二、将天、小时、分钟转换为秒+ p/ c# Q6 y% l# a! a1 E
SECONDS_PER_MINUTE = 60( d+ W, n) i1 ?! o9 z) w
SECONDS_PER_HOUR = 3600* M+ L0 O- V1 F5 A
SECONDS_PER_DAY = 864000 H- V( D6 a+ Z- S% u2 w. x! Q

. S0 o4 P; Q% u( y% g# 输入天、小时、分钟、秒的数量) _3 ^# S/ v8 w' `
days = int(input("Enter number of Days: "))
: z4 a, X/ Z: Fhours = int(input("Enter number of Hours: "))( f$ d& [& t) c7 ?& y
minutes = int(input("Enter number of Minutes: ")), z3 Q$ w  l7 |) Z8 `
seconds = int(input("Enter number of Seconds: "))
) B* ?# l! W0 \: |$ z3 G  `( V, n; M6 {
# 计算
5 F- a. E' t2 I8 stotal_seconds = days * SECONDS_PER_DAY
' S: _- L0 S- v3 I: j9 ~4 v- `total_seconds = total_seconds + ( hours * SECONDS_PER_HOUR)' v& _! w5 M6 z5 c
total_seconds = total_seconds + ( minutes * SECONDS_PER_MINUTE)
- l& v2 Y' I! Y# Wtotal_seconds = total_seconds + seconds8 n% c- N5 a$ S8 A+ M( ?0 B. ~

) }- W/ z; v2 t/ C# 结果" u4 A+ i6 L, p) d  k$ U2 U$ a
print("Total number of seconds: ","%d"%(total_seconds))
% T$ t' @" d0 a" g  q- {5 B5 U' A'''
# W- ^6 \% z' ^. W6 y0 }# V9 j9 _Enter number of Days: 5
. g3 J. ?: j) ?7 T2 f% YEnter number of Hours: 36
* g/ z. e  s; z8 Y+ W+ q7 y: Z5 n) ~Enter number of Minutes: 241 T* ^8 d0 b2 K
Enter number of Seconds: 15
$ D1 @: x0 F6 x8 rTotal number of seconds: 563055$ J/ s7 D) r, s( X) E! b
'''
  _& ?( C4 E0 U+ D( u+ r9 v, O2 j
三、使用 Pandas 获取当前日期和时间9 Y) z% z" K9 v( P0 O( p
import pandas as pd) Y0 z. X+ C& c* f6 F6 x) i
print(pd.datetime.now())  # 2018-01-19 16:08:28.393553- L/ K% L" d/ \- }  w( ^
print(pd.datetime.now().date())  # 2018-01-19
  Y% y% Q3 i, |9 R! tprint(pd.datetime.now().year)  # 2018
8 k1 h3 d+ X2 ~. F" b% h3 h/ wprint(pd.datetime.now().month)  # 10 W0 D8 K6 G- I% o0 q( d9 V1 [
print(pd.datetime.now().day)  # 19. m2 f( [. Q. e8 R- d+ E
print(pd.datetime.now().hour)  # 16& k3 l; ^6 B. h% d6 |4 i. z+ N
print(pd.datetime.now().minute)  # 80 d& I7 ?; B% ?& x2 Q- M5 \/ H2 o5 T
print(pd.datetime.now().second)  # 28
8 Z* Y0 b1 v9 gprint(pd.datetime.now().microsecond)  # 394553
4 R. ~" @# D3 }1 p: y
% U  J+ A# Y! a/ F四、将字符串转换为日期时间对象
0 I- Y- s+ A% C1 p+ Dfrom datetime import datetime: J1 R7 i, n  [: b+ l8 J
from dateutil import parser- f" l7 G0 j5 j+ L: b0 L2 t6 M
" ^$ m. Z( u, p3 E! o/ n
d1 = "Jan 7 2015  1:15PM": u. F" K: U0 v
d2 = "2015 Jan 7  1:33PM"5 @' c+ R6 p! R: b3 N
, }  ]* V* n2 J% y' _
# If you know date format1 B& k+ S# T1 d3 I& V6 ^
date1 = datetime.strptime(d1, '%b %d %Y %I:%M%p')( m( c5 l$ [8 ^; s7 F5 ]  a0 O$ X
print(type(date1))  # class 'datetime.datetime'
2 O7 Y3 r" P7 i' ^( xprint(date1)  # 2015-01-07 13:15:00/ Z! P3 Y  d% `2 Q2 _

  R0 y) G+ g6 w$ b  }# If you don't know date format) {# Z  I5 @0 j8 ?1 i6 w8 b  R
date2 = parser.parse(d2)
' B' ^. s7 Y: |% `, P$ D# s( f4 Vprint(type(date2))  # class 'datetime.datetime', F, Q. y+ f# ?7 r  y. S' M
print(date2)  # 2015-01-07 13:33:00
* U- @; w1 T% }+ c/ l* |
' K4 h1 x$ \  l0 l; E$ v' I& q$ F五、以毫秒为单位获取当前时间3 q7 u, {6 Q) T8 G: _5 O
import time$ B$ ]: ]; q! B4 h. c
! \' ?9 G4 G3 C
milliseconds = int(round(time.time() * 1000))4 K: d2 e" U8 \% k2 i
print(milliseconds)  # 15163642706509 U" D; x: b# v% T, n- i
" {+ V  U6 }; k+ B: l/ u! Z: u6 C
六、以 MST、EST、UTC、GMT 和 HST 获取当前日期时间! C2 S8 q- ~! m( D
from datetime import datetime
3 a# D) Q# M% z8 W  R' G1 Pfrom pytz import timezone
# m3 `  Y  C( `/ r) b3 ^
# ]0 h) x" r/ umst = timezone('MST')
# q) R) X! E* D$ S8 Aprint("Time in MST:", datetime.now(mst))  # Time in MST: 2017-01-19 06:06:14.495605-07:00
* V) H0 d' o3 p* i( I7 I9 iest = timezone('EST')
% X! S& i) G5 `' ~+ kprint("Time in EST:", datetime.now(est))  # Time in EST: 2017-01-19 08:06:14.496606-05:00
6 u# V5 q5 b0 Eutc = timezone('UTC')
# F) V/ o9 d8 Q% @print("Time in UTC:", datetime.now(utc))  # Time in UTC: 2017-01-19 13:06:14.496606+00:001 W, m  L- F* g) w/ v9 U
gmt = timezone('GMT')
/ b1 o7 T" w% O: K2 V' z. Cprint("Time in GMT:", datetime.now(gmt))  # Time in GMT: 2017-01-19 13:06:14.496606+00:00( S* l. C1 F0 f- I( \( f- M5 l
hst = timezone('HST'), L6 e% v4 P& F% }7 T$ K2 s
print("Time in HST:", datetime.now(hst))  # Time in HST: 2017-01-19 03:06:14.497606-10:00; R$ f6 O% V- c( F6 |

; j4 T+ o0 l! P" p: O0 r& s6 U% v七、从给定的日期当中获取星期几
3 C! P1 b. c9 ]! R9 c% pimport datetime
1 o' A7 v& @2 s& k0 Z1 E+ w/ X
6 G/ s% D; s1 l9 |4 ?! @2 |dayofweek = datetime.date(2010, 6, 16).strftime("%A")" o" |) _6 ~/ |' E7 c8 E. V
print(dayofweek)  # Wednesday, _9 O, a  @9 L& I3 L8 m' ?! R+ I$ T
' f: q' g  d% V" L4 Q) j
# weekday()方法: 0代表周一,6代表周日* W  l2 }& m. I  t2 o3 [
print("weekday():", datetime.date(2010, 6, 16).weekday())  # weekday(): 24 Z1 L3 E8 F( b- Q- A

( T8 [. r' g& A3 {# isoweekday() 方法: 1代表周一,7代表周日1 I* Q: d5 |  `1 n" e9 d
print("isoweekday()", datetime.date(2010, 6, 16).isoweekday())  # isoweekday() 3
$ Y' v' I, `. w0 D$ P) w' H7 O2 K! ^# P1 u7 s& c1 K% S
dayofweek = datetime.datetime.today().strftime("%A")  n3 t; p: p2 Y! o
print(dayofweek)  # Friday
) V( \) H0 x; L5 Z5 [print("weekday():", datetime.datetime.today().weekday())  # weekday(): 4  C" R* e/ n5 s3 O: h+ e
print("isoweekday()", datetime.datetime.today().isoweekday())  # isoweekday(): 5
( P6 a* ^  ^& L" D
$ Q& L+ m# a( e八、计算两个日期时间对象之间的时差
3 H# [# ]& T+ \& C5 h9 T0 kimport datetime
2 h- O& K7 S1 F6 d. Sfrom datetime import timedelta
! ~+ u- o/ a8 P" |9 w
" s8 Q  p  A0 \5 ]3 G: J0 L6 b  vdatetimeFormat = '%Y-%m-%d %H:%M:%S.%f'; Z% ?' |, c% `6 d% X4 q
date1 = '2016-04-16 10:01:28.585'" s2 G- r8 Y0 i/ r$ J& C# G* J
date2 = '2016-03-10 09:56:28.067'
4 J9 c. {; }4 j- w; y. _diff = datetime.datetime.strptime(date1, datetimeFormat)\! m9 N' B/ K: F; e- `9 `
    - datetime.datetime.strptime(date2, datetimeFormat)/ K$ Y7 ]1 d. ^; ?
/ }9 Q3 I( ^- c' U* |
print("Difference:", diff)  # Difference: 37 days, 0:05:00.518000
+ J6 [6 C2 d3 i0 N" B1 `& Vprint("Days:", diff.days)  # Days: 374 d3 x' Y  ]' Q6 v7 L  B. h
print("Microseconds:", diff.microseconds)  # Microseconds: 518000( t9 s% T% E% B* f, c! l
print("Seconds:", diff.seconds)  # Seconds: 3008 x# f1 ^" n' ^! P
5 ~2 j0 R. s7 M2 W
九、将 5 分钟添加到 Unix 时间戳7 `- @( y5 C' t
import datetime
; D5 }, j7 Q$ F' r! v  Z# D: y  Fimport calendar+ g" _2 L* H8 d% ^" v
5 V6 H+ X- T6 D  l
future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
8 M5 Q/ j2 Y0 C+ Q5 pprint(calendar.timegm(future.timetuple()))  # 1621069619
- L( O2 }5 J- U% J# s
* o& q& C& h" s十、遍历一系列日期4 B% [7 I: M" r" w4 r  ?
import datetime
; c1 j3 d, T( P% ^1 N
8 |1 H; W# y" g% W" W1 V; _0 e5 bstart = datetime.datetime.strptime("21-06-2020", "%d-%m-%Y")9 J  D5 d; p1 n/ j! k, z, R7 \4 k
end = datetime.datetime.strptime("05-07-2020", "%d-%m-%Y")5 `  q: [. r; v) Y0 x
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end - start).days)]; {7 c* f6 G& ~$ i- p9 S

; w, i7 l" y* i4 Y$ Ofor date in date_generated:
; s, W& F& J/ f' @/ h    print(date.strftime("%d-%m-%Y"))$ a! G) U1 d8 }7 r

4 Z  d) f- u9 c5 P& n3 h5 B( @* d十一、巴黎时间更改为纽约时间& p% }7 y8 X8 M+ J9 C; S% i/ V
import pendulum
/ l; s6 N8 O( f+ ^
" I+ E8 k& C# c; u8 r# Q4 pin_paris = pendulum.datetime(2016, 8, 7, 22, 24, 30, tz='Europe/Paris')
: O1 a4 w9 a  r# Y- @print(in_paris)  # 2016-08-07T22:24:30+02:00; D8 L# ~* R. t! F
' S# }7 T7 f$ V
in_us = in_paris.in_timezone('America/New_York')- q7 U+ P2 n5 U, G3 l
print(in_us)  # 2016-08-07T16:24:30-04:00' t2 V9 d! c7 [9 W% }" }) t% Y" c
5 a0 _5 K6 g' w! @  [7 r
十二、使用 Python 获得最后7个工作日! \. b% j& Y" {; e1 [6 a
from datetime import date' k6 y0 s9 p* v2 [0 t
from datetime import timedelta
# u* g! b& ]- l# M! c- ~  ]
0 j! ^0 g) l9 c  W- `/ jtoday = date.today()+ s- |7 B. F( k$ R6 \
$ C7 t/ y6 d8 z# Y) [+ X2 d2 K8 u7 b
for i in range(7):
: `/ J: \) Y! y# \+ Y    d = today - timedelta(days=i)
0 r. K: J, }4 |4 b- V, c1 t1 v/ X    if d.weekday() < 5:
" a: M' T% j) p; ~/ ~& b        print(d)
  _0 [" ?7 p( l) O- J! z% a# |
) V7 V5 N& I, u% Q9 b0 x+ I) V十三、从今天的日期和一个人的生日推算年龄
" u. D5 N9 r3 t& }. k# M* Y) Y& Q& Nfrom datetime import date$ u4 ^4 e  }  x' X' \0 q( {

8 g. A* Y6 R, ^- f2 d
3 n( R2 ~" q* q! m' Ndef calculate_age(born):  W' q( i/ |/ K! t: a, t' {& y
    today = date.today()
5 s, m$ H, }# W8 h. k5 E    try:
0 d5 O) Z% |* S( k( d        birthday = born.replace(year=today.year)
, p6 p) G- m, [% ^6 R1 v7 {) f    except ValueError:
( b. ]! o* V9 x$ k        birthday = born.replace(year=today.year, month=born.month + 1, day=1)5 P' K5 a; e% |! @& Z8 P. R) a
    if birthday > today:* [& e; x4 r8 ]* `5 S$ V
        return today.year - born.year - 1
1 x9 h4 {0 Z/ ?# o    else:
& i- N0 B( O- N4 }        return today.year - born.year
! W  w# p& H. T1 B% b- c4 {; B3 A- d, P. G) u0 h6 f1 W4 L
5 H" \0 V" A- A# s& A6 y& f0 ]
print(calculate_age(date(2001, 3, 1)))
1 g: T  F$ }/ V, Z0 q1 V
! z- @) `- [1 \/ W& A十四、获得本月的第一个星期二! ?) B" T# f5 Q$ E/ u# A, I, R2 C
import calendar0 j! W2 L, j, {+ E3 i
from datetime import datetime- F7 t  }" k$ ]( y+ Z/ X" x
. q1 W& j- W+ }- @& s1 Y7 ?
c = calendar.Calendar(firstweekday=calendar.SUNDAY)+ T* x  V9 R# {* @4 u9 h
monthcal = c.monthdatescalendar(datetime.today().year, datetime.today().month)6 T# |, m1 n' i3 G4 K4 }: V
#Python小白学习交流群:153708845  
6 A5 \$ n5 U1 ]" g! f" Stry:
: g% d/ \. X, X/ |4 I3 S    tues = [day for week in monthcal for day in week if% [( y- K' u3 ~" t; F) o4 f
            day.weekday() == calendar.TUESDAY and day.month == datetime.today().month][0]
! M/ X' h' T8 G1 B4 m" l, l+ Z    print(tues)2 P, M- j( m6 r- W: N; K5 Z' j0 R: e
except IndexError:- V; V/ H; X- e. g
    print('No date found')8 `) f8 ~% f- t- `
0 s& Z: _: \, M& S
十五、将整数转换为日期对象) x6 l4 w* E+ [2 t/ ]7 z4 e
from datetime import datetime( \6 ^& u. |" }; F4 F3 x
8 P  \5 g4 a/ Z; p& |0 i
i = 1545730073
9 Q" W/ r, P; M6 \6 B' G3 Z: Ctimestamp = datetime.fromtimestamp(i)
. W* m9 [3 A& }1 p4 Q
( v! ?! ^- S0 j% L, ]/ C3 hprint(timestamp)  # 2018-12-25 14:57:53) Q+ G+ ]6 O/ G/ D- H6 M0 a
print(type(timestamp))) m& y2 ^6 f' L. [8 E# L9 o

, A1 q# h- p# U/ N6 T十六、当前日期减去 N 天的天数
( w/ v% n# }3 v/ M" i6 U5 ifrom datetime import datetime, timedelta
% h6 A, Z* B, Q: S6 w# N! Z! w  D/ f# M% p9 U
d = datetime.today() - timedelta(days=5), T  ]2 _0 R& T+ W: k2 i
print(d)2 ?% W. H. o+ V* j) S# [
. R! p, d( I( I( ]
十七、比较两个日期* N) t& c; }6 f# N2 G
import datetime- z# `4 C# @. Y5 `+ y3 r; U# B
5 B/ Q9 [# t& I- q4 D* h, n' P
a = datetime.datetime(2020, 12, 31, 23, 59, 59)
" ?4 |4 Q4 }) Z1 `7 gb = datetime.datetime(2020, 11, 30, 23, 59, 59)
& g" X9 e/ X0 [8 G( U, D8 n& y1 g# r7 q; H4 Y- O
print(a < b)
! a# d! U4 D( N6 gprint(a > b)
% r8 K5 J& C1 B6 H0 B9 t, Z2 E
! k1 L. r* I. q. U十八、从 datetime 对象中提取年份
& B/ @) u+ r) g! P7 s4 `6 @8 Y2 Y5 ~import datetime* Y3 J( q2 h( K* c# Q8 b

& I5 H  }$ T. v% x1 Q4 ]year = datetime.date.today().year0 P8 O  U( m  d# u/ y) T  o& k
print(year). I# o' _1 j; n5 }; \( u  L; d& v) }
+ b$ o/ |; l" `5 K/ P# |1 M, F5 ?
十九、根据日期找到星期几
8 O  {  {2 j2 `import pendulum( w! W# D1 G( |' b& z  @1 D$ n

) g' g+ `# j+ }% s7 I1 n! _* B+ J; ydt = pendulum.parse('2021-05-18')
# c) r- O; Z) A  t% c, \print(dt.day_of_week)  # 2
1 z* A! g. S7 X* Q; y" B% ]& {  `7 C. h! w) w1 h  D
dt = pendulum.parse('2021-05-01')" F8 u/ t) C. L" y$ e' s
print(dt.day_of_week) # 6: H/ {7 w  p& S5 m: G$ V0 ^1 Q

& m3 t+ G) k% Jdt = pendulum.parse('2021-05-21')( S7 z7 ?* E# G
print(dt.day_of_week) # 5% p, d- S) `* S. r, x: i% |! Q
8 c% ?# U! E1 }# P- ~
二十、从当前日期获取 7 天前的日期% M# X$ ]9 t! b9 S! E" M# M
from datetime import datetime, timedelta
% j5 y8 V. o, n9 b' T. {6 e3 r0 G
, u. j( J6 R/ `0 m9 t7 v4 M# qnow = datetime.now()5 i# o# {$ L' M7 W6 X) ]' z$ a
, m  k; h* P  t! x
for x in range(7):# Y6 J7 x- [6 f  f, A
    d = now - timedelta(days=x)
& g% i# d+ }) p; f4 R. l) `    print(d.strftime("%Y-%m-%d"))
) q- G( ~+ c; [% f( H
# a6 R4 S1 [+ M+ P9 D) m  o% n, T二十一、将两个日期时间对象之间的差值转换为秒2 o4 u# X: T+ ?
import datetime8 o( `: N  a3 r9 q6 i# |

0 ~6 k+ Q- }: s' Ntime1 = datetime.datetime.strptime('19 01 2021', '%d %m %Y')1 |6 K7 K, G) h9 _5 n& \
time2 = datetime.datetime.strptime('25 01 2021', '%d %m %Y')
( r8 b- D& U9 U0 a1 m; c
7 G* p! r# @3 Y8 Ddifference = time2 - time1
- y* R4 Z, N( G$ W: @print(difference)  # 6 days, 0:00:00' ~/ p9 L" C0 G. Q3 m* m

, r8 i  d  f& `7 X4 kseconds = difference.total_seconds()5 w# `# {/ ]! A6 q
print(seconds)  # 518400.0' V- r* @5 j+ i: t, ^5 w) P# T

* R* C1 @  o; `$ E3 W" |- K二十二、获得任何一个月的第N个星期五3 \. g2 \, S6 R: E& I( p5 i
import calendar
4 d4 J# b* g: A( \/ @" _) i: X% ]* V$ Q' W3 W" x6 \
# 取2021年5月的第三个星期五
  ~5 A( t, P. [" n$ M/ r. Fc = calendar.Calendar(firstweekday=calendar.SUNDAY)
% ^& X& ]4 ?. Z8 \  Ryear = 20214 W, w9 {% n5 i
month = 56 I- F* ^8 n+ V- y: o
n = 2  # 取第三个, x6 q0 f6 |4 u2 N3 r% j" T) U$ K
monthcal = c.monthdatescalendar(year, month)
) ]6 H8 \6 g# |" J' D% P' B. f0 W
. u3 a8 K0 g$ a- a4 A# ctry:
( w+ S0 l! c4 a- r0 \    third_friday = [
, x, {0 `4 z# w2 m! ^        day for week in monthcal
& Z$ E; z  L7 g  `+ q* ?6 Z( ?7 F            for day in week if
+ j7 F( L; x# Y5 |6 H3 L                day.weekday() == calendar.FRIDAY and day.month == month
3 r- A* E( f; c1 M+ U    ][n]
- j2 x0 F" d4 j6 t" i9 P    print(third_friday)  # 2021-05-21
, H7 Y: l' H; U. j! O9 wexcept IndexError:
9 b# B/ M! i& k/ {( o    print('No date found')) _& m1 I3 L0 t' _9 w2 s' U# g
3 H8 e5 ~" B% n- K) p8 J6 F
二十三、根据周数获取日期* l2 M) L+ Q$ v+ j; Q& s+ y
import datetime# u, t; C. o6 V3 K! ?
from dateutil.relativedelta import relativedelta2 r# n# w8 r) b  @* f$ i" P" k

& f# z- d6 I- r2 I+ E3 pweek = 25% v+ C6 |% @9 U; Z4 D
year = 2021
/ Y: G5 J. b9 A6 j4 G: I, ydate = datetime.date(year, 1, 1) + relativedelta(weeks=+week)
6 s1 Y/ f1 u: O0 J; u; Pprint(date)  # 2021-06-254 U3 e& r3 a7 V

* \" I4 z$ f; c4 a8 ?# h6 q% R二十四、获取特定日期的工作日
! T2 G& ]6 ?$ X7 m3 pimport datetime
% W" ^3 U2 q5 I' p# |+ H4 O5 E$ i+ Z" s7 s- C- b
print(datetime.date(2020, 5, 15).isocalendar()[2])  # 5
! t# L, j  ^( Z3 ~/ @; B0 m9 O
, J' M9 ?# G( i, l3 A3 R, a二十五、创建一个 15 分钟前的 DateTime
0 k1 W5 a3 F2 x- ]' d$ x6 P; p, M8 }import datetime
# d" b. B. n# H. r5 \#Python小白学习交流群:153708845  
% t0 Y2 j: _( {3 M4 i' x" Ldt = datetime.datetime.now() - datetime.timedelta(minutes=15)( t: o+ R) v( }; B
print(dt)  # 2021-05-15 22:25:55.897365
9 v1 N: |! W; m# @2 H: ]; M2 |. O- @: P, M# X# b
二十六、从特定日期获取周的开始和结束日期0 N1 V4 m1 q# C1 w
import pendulum
/ u& c1 E8 _+ ?8 G  Z- N2 s! T1 A! p6 d7 z2 ~! V
dt = pendulum.datetime(2012, 9, 5)) c; ?. b7 R9 e

) s5 `# U8 r1 A: `start = dt.start_of('week')3 F) M$ K; i- c, I: T& t; W
print(start.to_datetime_string())  # 2012-09-03 00:00:00
7 ]! n% {3 s8 i) ~& i" P
# |8 g6 ]& I: a  m, Y' Send = dt.end_of('week')
1 a; ~/ V; F# f# bprint(end.to_datetime_string())  # 2012-09-09 23:59:59/ w$ r4 c% e2 {
* V/ i' L: _  P& v" g  o8 k0 A
二十七、两个日期之间的差异(以秒为单位)9 E: d  o  V" j' g$ E, [+ k0 R
from datetime import datetime/ e9 U  k# g, {  H* N3 v
#Python小白学习交流群:153708845
. B# G5 v/ P' G" Efmt = '%Y-%m-%d %H:%M:%S'! R5 I$ ~. l# @/ p
d1 = datetime.strptime('2020-01-01 17:31:22', fmt)
: F( j* B0 E2 v+ e8 D- yd2 = datetime.strptime('2020-01-03 17:31:22', fmt)5 L( I' i- f0 I) v' W$ `

3 x& V1 g' ]7 k9 x0 N/ wdays_diff = d2 - d1
* n( x* ~' r$ e+ nprint(days_diff.days * 24 * 60 * 60)  # 1728001 Y- q) B# `& X8 I2 ]
5 y  M2 S2 M3 ~
二十八、以这种格式获取昨天的日期MMDDYY
2 G- l8 G2 D1 _) L5 Q+ N% jfrom datetime import date, timedelta
" o1 a2 |' |- E$ a2 L
7 v1 z& v& Y8 y" iyesterday = date.today() - timedelta(days=1)
0 |! q" \! B1 ^: vprint(yesterday.strftime('%m%d%y'))  # 051421
3 e& ?2 I8 ^: P6 Z4 z  Z; r# O1 ?' h. y' `8 P; L- D$ [. q4 J/ `
二十九、根据今天的日期获取上周三的日期5 L8 ~- |: V( P, O" U0 j
from datetime import date9 U5 j+ a5 J5 J$ @- x0 S
from datetime import timedelta
, c, K/ ^1 U& L7 n( c" e, s9 k. P
9 T5 P+ F8 F' `* M7 h4 `7 Ktoday = date.today()+ q# T( ^; C5 L8 O7 \1 y* S  T

0 ~" k! I- [# v4 q+ ?2 O' `offset = (today.weekday() - 2) % 7" G  `2 m: Q  c
wednesday = today - timedelta(days=offset)  \$ u) O3 `) L: h4 a$ U
print(wednesday)  # 2021-05-128 N5 e- e5 ?+ E% Y
$ X' d# F! \/ V
三十、所有可用时区的列表打印
' T1 L$ d: i4 i" l; U6 z; ~import pytz
/ T+ P. |! {3 U& V
/ w6 v& `- F' c+ {/ ?% N; H( hfor i in pytz.all_timezones:
/ G  R; X$ c( O2 l$ \    print(i)
% F; e" [* W* `3 R2 x% X! c& z: \* B  t" s

4 m5 V  o/ N0 h/ V$ ]6 L3 Y$ C$ Q
, x/ w1 Z) B9 u) g7 R! e2 [
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-12-9 15:45 , Processed in 0.476828 second(s), 50 queries .

回顶部