QQ登录

只需要一步,快速开始

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

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

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

1188

主题

4

听众

2931

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-22 11:30 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
使用 time 模块展示当前日期和时间; N# b. a& ^; ]8 G- j
import time
' h, c: z, {9 u8 r$ H! zfrom time import gmtime, strftime
5 u, V) V5 O& ^! V& }/ F) A* H9 O8 k* z' |  a
t = time.localtime()  ' a9 p" u. a6 `- q, y3 W6 J
print (time.asctime(t))  # Sun May 7 09:30:37 2017
! {# g+ w4 V& g" w5 lprint(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()))  # Sun, 07 May 2017 04:00:37 +0000
/ @9 o, u6 m7 ?% x4 M1 Y0 F- gprint(strftime("%A", gmtime()))  # Sunday
) l$ z  ]; X2 L5 r" Vprint(strftime("%D", gmtime()))  # 05/07/17  K2 w9 t/ ~) k2 M' b' D
print(strftime("%B", gmtime()))  # May
9 C9 |/ H6 M( w/ Z2 M- s+ O$ \print(strftime("%y", gmtime()))  # 17
- }3 ]1 Q7 P( \+ [
3 j8 o; t# j9 o. l# Convert seconds into GMT date
* }7 E% D+ L  L; ?9 P5 hprint(strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime(1234567890)))  # Fri, 13 Feb 2009 23:31:30 +00008 o+ [. g+ F# M+ e* l

& u2 F$ s( z  l  n/ F4 c/ t二、将天、小时、分钟转换为秒
8 v8 v# B  {% N' o* A1 R) OSECONDS_PER_MINUTE = 60' U- }! H; u$ y4 x( |! H! U6 Y# |* z7 Z
SECONDS_PER_HOUR = 3600
$ B5 |  w" F9 q  @1 [SECONDS_PER_DAY = 86400
! e; E  Z+ {/ X( c4 ]; e/ Y9 A& k0 c
8 |# Q1 {! W! i- F( A9 h8 G# C& f# 输入天、小时、分钟、秒的数量
$ P5 J; P" J9 Y, p) t1 ldays = int(input("Enter number of Days: "))
! N# y* ?1 N2 l; J" Y* T4 Uhours = int(input("Enter number of Hours: "))
! G. i% ]% t4 }7 k, Z) i& V/ \* `/ V$ R: Vminutes = int(input("Enter number of Minutes: "))6 S# d& w3 }6 }$ o+ k
seconds = int(input("Enter number of Seconds: "))! Z1 ~9 {% [" c0 t9 }

; r1 v5 z; s& [# 计算
  Y1 M- v1 q+ ^7 xtotal_seconds = days * SECONDS_PER_DAY: N- X- G& F* n
total_seconds = total_seconds + ( hours * SECONDS_PER_HOUR)
; y+ Y/ G" H, o7 h7 F/ }total_seconds = total_seconds + ( minutes * SECONDS_PER_MINUTE)2 ~6 l  h- y1 v5 R
total_seconds = total_seconds + seconds7 l% r9 J( C0 V6 w

/ {: ]1 I. Y; T% a" L# 结果
9 D6 p; F( [, @. E3 n8 y# }print("Total number of seconds: ","%d"%(total_seconds))
0 D5 f  l+ J- q* q4 u3 t'''3 l; \  Q( k/ t5 t' k, D
Enter number of Days: 5
2 r9 H: _- u' l+ E. c$ v& X$ cEnter number of Hours: 36) l. _( y+ }3 `7 N
Enter number of Minutes: 248 g# d8 h9 n* z' e" _" W1 z
Enter number of Seconds: 15( t( }/ T5 o7 P# S
Total number of seconds: 563055) H4 a; D0 a1 E* `  ]2 G- P
'''3 q5 y5 C, M$ o4 l4 \

, e" b' j! Y- r; d" k三、使用 Pandas 获取当前日期和时间+ c3 O- [+ ?% H5 J; B, G" V
import pandas as pd% E- H1 n) y9 o: \' ?" w
print(pd.datetime.now())  # 2018-01-19 16:08:28.393553
$ ]4 `- J+ h0 p7 {( zprint(pd.datetime.now().date())  # 2018-01-19
. g4 T# v; h/ X$ n% Pprint(pd.datetime.now().year)  # 2018
8 i# }/ Y5 q. j" p* kprint(pd.datetime.now().month)  # 1
/ S& W# C6 U1 n5 v; `$ D5 m7 aprint(pd.datetime.now().day)  # 19
( F, w+ f2 ~* K( S7 Gprint(pd.datetime.now().hour)  # 16% k- Z6 H: x, Y) o: Z( p
print(pd.datetime.now().minute)  # 8
7 Y. F( s" ~. K# X8 g# X2 J. n+ f0 Iprint(pd.datetime.now().second)  # 289 A2 o# ~9 r- c& f  ~
print(pd.datetime.now().microsecond)  # 394553( r" w: S) r# l; X! o

6 g1 g. v8 S: c) A! ]四、将字符串转换为日期时间对象3 C5 }  W% H3 p7 I
from datetime import datetime0 f+ O. G5 o: J
from dateutil import parser
. Y/ S/ m9 ~$ `5 f, u1 v. ?8 J7 D6 Y" u1 ]
d1 = "Jan 7 2015  1:15PM"
- ?8 }# N  x0 Z* M, ]d2 = "2015 Jan 7  1:33PM"
; h7 X3 f, |( @; |- P9 m3 v7 Q& `6 F  C% w& ?. [
# If you know date format
" b1 @, m" n3 h/ `5 ?date1 = datetime.strptime(d1, '%b %d %Y %I:%M%p'). B, ~" W' b0 B& h9 `) ~
print(type(date1))  # class 'datetime.datetime'
( `% I/ Z) r8 ~3 j! E8 i0 O2 u1 yprint(date1)  # 2015-01-07 13:15:00
3 U2 D0 }9 A8 ]7 D: s9 M
$ N  F0 L3 t* {5 l# If you don't know date format
$ o! S; h- E: R5 B2 q3 pdate2 = parser.parse(d2)( W$ Q& s3 E1 y+ a$ C% ^( R: A
print(type(date2))  # class 'datetime.datetime'9 B1 r- `5 c, Q7 ?  |, V) v
print(date2)  # 2015-01-07 13:33:003 t9 H; t5 [  J* k1 y: n* v4 o
2 A/ N8 r% N, d6 x9 W) K; p5 n/ o% P
五、以毫秒为单位获取当前时间. S7 _; ?! Y0 o3 T* U
import time6 q# _4 Q$ u" M) o7 P

% P- I/ G- E( H2 J+ l1 S7 c, Tmilliseconds = int(round(time.time() * 1000))' R: ?# m/ `7 C* O5 x
print(milliseconds)  # 1516364270650
* T& z3 e& h' N; ?% G" \% |. c# v- R- a$ T9 H( ]0 q0 A) V: _& @
六、以 MST、EST、UTC、GMT 和 HST 获取当前日期时间
* n6 E" T% G- B* T5 L1 r8 a! Tfrom datetime import datetime* z. ~+ X4 G: V' Z4 G
from pytz import timezone
0 I% M( ?. v( [) r1 j! s; L
6 {' a0 k& ^: V' Nmst = timezone('MST')
* y* g% y+ Q; [$ e7 h+ W$ nprint("Time in MST:", datetime.now(mst))  # Time in MST: 2017-01-19 06:06:14.495605-07:00; H4 O5 A6 n$ ~. L+ J5 Q  ?
est = timezone('EST')
' }" J4 \6 j: z4 F4 O8 R' uprint("Time in EST:", datetime.now(est))  # Time in EST: 2017-01-19 08:06:14.496606-05:00' c) g: v. B$ m5 g) D
utc = timezone('UTC')  X) v* y7 D0 u  m
print("Time in UTC:", datetime.now(utc))  # Time in UTC: 2017-01-19 13:06:14.496606+00:005 m5 Q9 _5 ~" W" m5 P$ k
gmt = timezone('GMT')# n3 r$ L6 d7 B, [# a
print("Time in GMT:", datetime.now(gmt))  # Time in GMT: 2017-01-19 13:06:14.496606+00:005 T# V1 \( n& K& B6 p* d
hst = timezone('HST')' a6 f1 b/ R9 X
print("Time in HST:", datetime.now(hst))  # Time in HST: 2017-01-19 03:06:14.497606-10:00
4 b) F9 Q) b! v+ w) O) h8 Z6 S( n. C3 {% ]; h$ b- Q
七、从给定的日期当中获取星期几+ l4 j8 [! u2 t
import datetime
( G' r9 _4 C+ @3 ]( f+ Z# N# x' a
+ X/ Y8 D& G. C+ t  u1 ]dayofweek = datetime.date(2010, 6, 16).strftime("%A")
& D; y& O0 P7 z6 L) T4 {7 k) gprint(dayofweek)  # Wednesday
& D. I! l5 n' Y
9 W) i# k$ l$ m5 _# weekday()方法: 0代表周一,6代表周日
( e* I5 Q- b% qprint("weekday():", datetime.date(2010, 6, 16).weekday())  # weekday(): 2& o7 T0 ?! C% i9 o' b2 T% N! {
( f1 z; \! b* L+ v6 c- |
# isoweekday() 方法: 1代表周一,7代表周日
! ^! k  ^0 e( Q* C1 K5 z& h6 P/ Aprint("isoweekday()", datetime.date(2010, 6, 16).isoweekday())  # isoweekday() 3
  J& s7 l8 Y# h9 T3 v  Z& R
) h6 ~+ [; a+ ]# ^4 Ydayofweek = datetime.datetime.today().strftime("%A")
5 u- c& O0 e9 O9 f) a4 Xprint(dayofweek)  # Friday
7 t: f4 Q6 t" s$ C* n4 mprint("weekday():", datetime.datetime.today().weekday())  # weekday(): 4
: V( d3 g8 X# m4 kprint("isoweekday()", datetime.datetime.today().isoweekday())  # isoweekday(): 51 R$ f/ s& D; s" [3 r" F4 g

9 u6 \" L' ?5 R, |+ j+ Z# t( N+ v八、计算两个日期时间对象之间的时差( {9 j$ D, {# d6 {. O
import datetime
- k2 B' c, d7 z- ?4 T- [$ J3 J7 Lfrom datetime import timedelta  o: h" W6 \8 A6 {% g$ g

; {2 h5 {( g- {" _datetimeFormat = '%Y-%m-%d %H:%M:%S.%f'
5 t# t& ~6 B0 gdate1 = '2016-04-16 10:01:28.585'
4 }- o1 A8 H, K* r" E9 E! v0 |date2 = '2016-03-10 09:56:28.067'
# R' R) i' D$ [( s: U3 hdiff = datetime.datetime.strptime(date1, datetimeFormat)\
. I6 s1 i% x5 t# m  m  O) k    - datetime.datetime.strptime(date2, datetimeFormat)
1 ^7 K2 R6 H: _3 C6 Z: t2 i5 M: o
( ?) B8 d7 K; Z/ d* l8 Oprint("Difference:", diff)  # Difference: 37 days, 0:05:00.518000
0 X9 ^, C$ ]/ B. c$ Fprint("Days:", diff.days)  # Days: 37
- L) Q3 \7 m4 N8 z* i# U' j: cprint("Microseconds:", diff.microseconds)  # Microseconds: 518000
* C* C5 I; P8 t7 K& X5 [9 |! Zprint("Seconds:", diff.seconds)  # Seconds: 300
/ h6 T5 O- f+ k5 g7 |
/ ~6 {  a! k& O1 K" g1 O九、将 5 分钟添加到 Unix 时间戳
; m& `# {9 M! `import datetime: ^3 i' A% c& r" H" {  a, @% r
import calendar) b6 f0 ?% X7 G" a2 q7 ]

/ U! Y  }) f- z$ e" h0 ^future = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
) u" I$ ^+ p1 cprint(calendar.timegm(future.timetuple()))  # 1621069619
! a4 h7 Q" x( @( g5 ^9 u% C6 U
$ c8 |% [( _5 Z, W十、遍历一系列日期2 V& w' N, ?" x3 v0 k+ T; o. p
import datetime
5 S( d8 l( X. R" x2 D7 i+ Y: n3 }
- f) W  Z% ^0 |  G7 _8 kstart = datetime.datetime.strptime("21-06-2020", "%d-%m-%Y")% Z/ M0 O- X: s
end = datetime.datetime.strptime("05-07-2020", "%d-%m-%Y"); c2 e& W. Y3 s
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end - start).days)]& S5 z; O: d5 z  ~$ W9 J$ I8 l2 W

; Q3 V, B9 s( g/ D6 W, i7 i. o5 R( nfor date in date_generated:
" W4 _* {* l- Z9 c& s! d2 J6 r    print(date.strftime("%d-%m-%Y"))9 q0 E( z! {: E

5 m: {6 h* `+ ]* Z* Q十一、巴黎时间更改为纽约时间
9 d: T: T9 Y. O" _' v7 ?* {8 kimport pendulum* N; h5 U% P( u4 W
( X2 C- P& Y# N, u( D# E7 i
in_paris = pendulum.datetime(2016, 8, 7, 22, 24, 30, tz='Europe/Paris')
% Q) [4 E' M# f& F3 U; X. Uprint(in_paris)  # 2016-08-07T22:24:30+02:00% t# c# U1 z/ v" H( `, c

- G0 ?2 j9 k& W0 Uin_us = in_paris.in_timezone('America/New_York')
3 l3 @/ b3 A% b- g- o- I2 i& a: m) b" `1 iprint(in_us)  # 2016-08-07T16:24:30-04:00) Y( U' d6 o0 R
" ^& d; R3 s; r8 J* y9 @- z
十二、使用 Python 获得最后7个工作日
; @- V' c/ X" jfrom datetime import date
+ c& a% Z" T) T; ?- H* I! _0 lfrom datetime import timedelta
4 m: [6 _) R# Y* z
  m2 f2 ?& x# P9 n; Ktoday = date.today()
3 R5 |8 _" E- C' W9 U/ g  N8 E/ @* |: \5 E
for i in range(7):% [' `5 \' j6 H% e4 t- E7 t2 M
    d = today - timedelta(days=i)
2 f% ~7 w7 O/ d6 ^    if d.weekday() < 5:
5 L* X2 H/ y$ i3 g7 C        print(d)9 S  |4 ^7 C3 G$ s) ?% }8 N! Q

: t1 f4 W- [$ N; H( t" I. Y. h5 V7 _十三、从今天的日期和一个人的生日推算年龄
* M- M; K5 M3 z! [; H: Afrom datetime import date5 r7 v9 D' Z9 A" x) Y- B) u

& X# l  Z) R& ~3 a; E( ~( V# P$ A" S0 l; g% z! H
def calculate_age(born):
1 V7 z; H" x7 U3 u1 t    today = date.today()
9 \9 G! d4 y+ a- ]5 H* _" S- ~    try:
8 J* ]$ f& z# h        birthday = born.replace(year=today.year)* q* Z. w  r, R. l( h. |
    except ValueError:
: V; ]* N; m* c) [5 C        birthday = born.replace(year=today.year, month=born.month + 1, day=1)8 Y  l# S  ^9 k
    if birthday > today:( e6 R& \7 [) j, o
        return today.year - born.year - 1- {, [/ o$ Q8 w& R; K
    else:6 M# n( v  i2 M$ h; }& _9 y. e
        return today.year - born.year1 D+ b2 z9 @0 u

  U8 D0 H+ R3 H1 ~6 ?5 N
2 W* Y+ r- F/ }. e, f( W6 \print(calculate_age(date(2001, 3, 1))); f, _/ H5 I- I5 P' B; B0 \& ~- W; k

( ~, T( m; N7 h2 i) L& \* J十四、获得本月的第一个星期二9 @6 Q8 ^  ]7 X7 ^: o+ i
import calendar
4 d' g& |8 ], S7 t: Z8 sfrom datetime import datetime/ I& B& j- T: V' B' i9 z
" z4 L" S& |% _/ V0 }/ u, I6 S
c = calendar.Calendar(firstweekday=calendar.SUNDAY)0 T4 V( M- t" v! g1 a
monthcal = c.monthdatescalendar(datetime.today().year, datetime.today().month)$ d1 T/ D/ o1 s) y
#Python小白学习交流群:153708845  
! ?5 g- E0 Q% a' \% x) k# Jtry:
. f8 \! p) o4 S    tues = [day for week in monthcal for day in week if
9 j; {0 u/ f/ b' J  M+ O            day.weekday() == calendar.TUESDAY and day.month == datetime.today().month][0]+ |5 X; f" q# v1 C2 C% j
    print(tues)2 p2 K+ _7 C% j& `! J
except IndexError:- z+ g& K5 t1 Y( r* {+ [) [5 u
    print('No date found')3 c1 ?7 C+ b1 g) m6 a8 o9 d  m% j$ W
3 g' {. a! v/ D# N; ?
十五、将整数转换为日期对象
3 A" `9 k7 }3 s* Ofrom datetime import datetime7 _2 T* M: @9 M1 N' W: f
1 ~( B9 J4 ~1 C& l) W
i = 1545730073
2 [2 z/ s" `7 ~6 ~0 l: d3 N) Etimestamp = datetime.fromtimestamp(i)
, L0 c% h7 j" j- t( Z/ y& \; C' k1 I6 s1 d4 `' s: ?
print(timestamp)  # 2018-12-25 14:57:53& o2 E" S0 l$ q. F  M( ~
print(type(timestamp)); d3 T1 o, O+ S, u

) p& i5 G1 @% L+ n! N3 {0 H十六、当前日期减去 N 天的天数
  G: ?' S  n2 }9 R+ ]* t, W# ?" Lfrom datetime import datetime, timedelta, d* ^6 M6 a3 D- m( ~
9 _* `0 X, H! m- |# ~
d = datetime.today() - timedelta(days=5)- M% V5 o6 S- ?1 A) ~! ?( I) c
print(d)- Q! `; y8 ]+ h( ~: v
) {; m( b  e* ?# G: M
十七、比较两个日期2 S' x7 k+ `4 Y# e5 v$ R5 Q
import datetime
8 [3 s' J7 k. V  ?1 ~! n
3 e& H3 f8 Y  l1 c$ S2 w6 pa = datetime.datetime(2020, 12, 31, 23, 59, 59)2 v% t8 `' |1 T' j
b = datetime.datetime(2020, 11, 30, 23, 59, 59)5 S# a4 f) \+ O' Q+ [# x" u* H# N
! r) b# ]6 N* O' k' y) E
print(a < b)
* C3 \; s! m; {( E- rprint(a > b)# z4 M- d; H; d* d8 I, u- M1 z
2 x; i- X6 K: ~: t" v
十八、从 datetime 对象中提取年份
2 Q, Y4 T0 F) C& l  g) z/ b4 z6 R; }import datetime' O8 w( G9 H/ G# w" N

9 \' ?' u5 Q3 w9 q$ S# p% |year = datetime.date.today().year
2 m2 S) Z& O9 q2 ]" {4 w% v2 Fprint(year)
" ]' W6 w1 N' B. l% {7 R- h/ f* Z$ P* @1 U
十九、根据日期找到星期几5 O3 d1 n9 P: t. G( h
import pendulum2 a2 ]1 Q5 q( C' H5 v9 s0 e
- s. h, e) H* e
dt = pendulum.parse('2021-05-18')
0 F+ V. i" l! Qprint(dt.day_of_week)  # 2# T( ~* m! d: `9 v. ?* O5 [/ {8 `
+ T4 ^' N  f: q2 h) D: u" P
dt = pendulum.parse('2021-05-01')) T2 _: R  Y' t# y
print(dt.day_of_week) # 6
$ x4 c+ p8 X$ Z. R
' F, U, C4 P) h6 a% ~  ndt = pendulum.parse('2021-05-21'). X! w- n; w9 B( Q/ F" H$ n
print(dt.day_of_week) # 5
5 k2 M  a& V' T, [: V* C& J  i: [' u2 B& A+ J
二十、从当前日期获取 7 天前的日期
- I+ K* W6 ]3 ~' \, U( W; ^9 zfrom datetime import datetime, timedelta9 L" n& X4 D) k. _" `/ I# J# w
1 }6 y0 R; u4 T6 C6 h
now = datetime.now()
7 O# g+ C7 [* v0 d/ V8 H  V7 g/ _& C7 v& l
for x in range(7):
7 V4 j4 h9 I: m2 s2 r    d = now - timedelta(days=x)
9 [/ ~# D9 A7 X" \5 Z    print(d.strftime("%Y-%m-%d"))
$ K, p" K: ^! u  w$ M/ }: E- _5 _' N9 \6 Z& e
二十一、将两个日期时间对象之间的差值转换为秒. W4 M  z+ D& W
import datetime
' e, H! S' q2 d( s( O0 h" f: R& C1 U4 {6 W7 X, Q9 j
time1 = datetime.datetime.strptime('19 01 2021', '%d %m %Y')
* `. e+ S) _) Z, gtime2 = datetime.datetime.strptime('25 01 2021', '%d %m %Y')
& h/ s; u3 s+ t. g$ R* A; t/ y: l# R  d
difference = time2 - time1
) `+ _1 ]8 I% d" h" Q9 S- Vprint(difference)  # 6 days, 0:00:00
$ q( s% X) v9 r0 n2 c$ V; r7 u
seconds = difference.total_seconds(). D4 c. `- {) U) Q. W; M# r
print(seconds)  # 518400.0' W+ v; d( p9 n, c9 m8 T1 I% E3 l1 u

( O3 o+ O* N* Q* Q2 q+ k- ^$ K: _二十二、获得任何一个月的第N个星期五
. R, v/ X5 ?+ n6 iimport calendar* m$ D7 e8 R! Y6 W) g) \
5 C  o' S$ k3 B/ k8 I
# 取2021年5月的第三个星期五
( q7 P' O* |5 J2 Z" Yc = calendar.Calendar(firstweekday=calendar.SUNDAY)
$ i- J2 s9 y, l* y8 Z4 |+ Wyear = 20216 r5 H7 Z1 ^5 B# @# B
month = 51 _* M+ G6 F' I, `. R
n = 2  # 取第三个
" J( K8 z0 R& B+ a: s. v) r2 wmonthcal = c.monthdatescalendar(year, month)
8 H! I! {* ^5 e8 [, ^
% u+ T, K6 [" v4 X- K8 [; Jtry:
5 [) w; O" H& o) T; s4 v. k  g0 q    third_friday = [2 O1 ?! w. H  A
        day for week in monthcal
2 o( }# B& ^1 z) e+ p            for day in week if
8 {+ m- o1 j$ k3 e                day.weekday() == calendar.FRIDAY and day.month == month* j2 a, n- n. p, C1 z$ C) F
    ][n]
6 _2 T+ J/ B! L1 F- }! B    print(third_friday)  # 2021-05-21: {1 o( |; Y5 G0 g. ]0 s8 Z3 N6 j& N
except IndexError:; f% y& w/ r3 |; Y# {+ D
    print('No date found')9 {0 c7 w5 O2 d/ h5 N3 z" O! c

: J4 V4 C$ M2 Z1 b' W二十三、根据周数获取日期
/ v& A% u# J! X% Z; n7 }2 E; oimport datetime2 B( N! e+ K0 N# z
from dateutil.relativedelta import relativedelta
8 |# @4 U# e! u  @1 s: V$ a: M1 R  d$ p
* p  P, Z7 b2 ~$ V" F; F: d7 eweek = 25
. q& Y% Y$ A: k6 U# e& q& Ayear = 20210 s* g% B7 e- k9 Y$ {6 l' E" f
date = datetime.date(year, 1, 1) + relativedelta(weeks=+week)
- X. L7 I& i" y# Qprint(date)  # 2021-06-25
; q5 \8 h* w9 @
' `9 I5 w1 @: ^& z* U5 {二十四、获取特定日期的工作日; \+ @% }0 y9 G! D- G9 b: U. T
import datetime& s0 q. J* Z" v) U( r) Y% ~

- W8 [% H) X8 o: @print(datetime.date(2020, 5, 15).isocalendar()[2])  # 5
( {9 y6 I  \1 \' E  h% z( K& r! n2 Q6 I% l' K/ P% i7 d( y
二十五、创建一个 15 分钟前的 DateTime
5 [$ _2 Q2 I9 C4 a: _7 I" c- ?2 ]import datetime6 o1 l5 ^5 S9 w5 X
#Python小白学习交流群:153708845  ( f  z6 h; I+ R$ v) b; }
dt = datetime.datetime.now() - datetime.timedelta(minutes=15)
+ |1 ?$ \3 ~! t$ Yprint(dt)  # 2021-05-15 22:25:55.897365+ h* w: n. z  T
# H: j& M3 _' e7 u- n
二十六、从特定日期获取周的开始和结束日期
/ j2 B' ^0 l" f3 s6 ^import pendulum( Q  x6 {0 u. |
+ x3 C  P2 B' I. u9 f: e- @4 R
dt = pendulum.datetime(2012, 9, 5)
1 i# ^6 o8 Z4 e
4 r7 g' I7 u' b! C3 Ostart = dt.start_of('week')! |' P" P. y* f$ u- H6 n; t
print(start.to_datetime_string())  # 2012-09-03 00:00:00$ Q2 n1 A7 s# t, G7 n/ t5 G- O
# e- J: R9 g5 @+ Q( ^
end = dt.end_of('week'), C2 [0 D0 A# A5 e  b
print(end.to_datetime_string())  # 2012-09-09 23:59:59/ x+ m& v. K  _1 `$ g
$ P$ O5 o# b6 ~! Q
二十七、两个日期之间的差异(以秒为单位)
; g- p! n: ^, v9 w  Ifrom datetime import datetime
' O+ M' [3 r# ^#Python小白学习交流群:153708845 ! l* S6 z3 S3 P( L3 N
fmt = '%Y-%m-%d %H:%M:%S'9 @# d+ }/ i3 w
d1 = datetime.strptime('2020-01-01 17:31:22', fmt)
( J: s6 [: `8 E9 {! pd2 = datetime.strptime('2020-01-03 17:31:22', fmt)1 d) N" t- v7 o8 W& M# ~7 Q2 C( i; c

; f, ?7 [" M( a0 r) \; R  ]) idays_diff = d2 - d1
- I, p& a1 p& a  Wprint(days_diff.days * 24 * 60 * 60)  # 1728004 l9 D/ }2 q: q# U: \! B! i1 ~
, V. H% R6 p  ?6 j6 ?
二十八、以这种格式获取昨天的日期MMDDYY- e, q/ m3 Q0 f
from datetime import date, timedelta
" ~( U1 ?' [1 D8 y: L: Y" d
6 m& j3 v' R' L7 Kyesterday = date.today() - timedelta(days=1)& t7 U7 A$ a8 O* v% n, p' S
print(yesterday.strftime('%m%d%y'))  # 051421; w* ~) j1 {( y: ~
5 ]$ x; l' x  W9 o
二十九、根据今天的日期获取上周三的日期
; m/ u3 \" j% j  ]  Rfrom datetime import date8 Q3 j% i. y$ H  z
from datetime import timedelta
! o% Z. N3 K' s' `% H
  y) K6 v+ I$ F. j6 Btoday = date.today()
- c8 P2 b  C- X3 p) X5 w. U
/ U. `5 Y" ]# E- J6 \( ?8 a; Goffset = (today.weekday() - 2) % 7
; ?$ F4 s% d- I& q1 n4 vwednesday = today - timedelta(days=offset)
2 t6 g; n3 c& z- Kprint(wednesday)  # 2021-05-12
, y; b3 p' q0 p7 |9 f; Q& K6 ~8 V- G* I$ ]+ j
三十、所有可用时区的列表打印
: Z5 t* F2 ?0 B: ]: Uimport pytz
% b* y* m4 N% k9 I
" r$ @7 k/ B6 ]& y, ?4 q$ H- Ufor i in pytz.all_timezones:+ ^) h* Y8 A2 \7 S1 Y3 a' O
    print(i)
( ~  u. V0 U2 R) l% V9 Z  P7 i
: o1 E$ a$ D6 {+ _; a
, t6 b9 A6 q/ j" y2 X
: h' G5 ?' U! W! I  P5 @$ w
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, 2026-5-26 00:05 , Processed in 3.254876 second(s), 51 queries .

回顶部