1.获取当前时间对应的数字
"""
开发程序时,经常需要获取两个代码位置在执行时的时间差,比如,想知道某个函数执行大概耗费了多少时间,就可以使用time.time()来做。
"""
import time
def func1 ( ) :
s = 0
for i in range ( 1 , 9999 ) :
if i % 2 == 0 :
s += i
else :
s -= i
before = time. time( )
func1( )
after = time. time( )
print ( f"调用func1,花费时间 { after- before} " )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
调用func1,花费时间0.00690770149230957
2.指定格式字符串显示时间
"""
以指定格式字符串显示时间,是非常常用的,比如日志里面的时间戳。
"""
from datetime import datetime
print ( str ( datetime. now( ) ) )
print ( datetime. now( ) . strftime( '%Y-%m-%d && %H:%M:%S' ) )
print ( time. strftime( '%Y-%m-%d %H:%M:%S' , time. localtime( ) ) )
2022 - 11 - 13 21 : 11 : 43.697226 `在这里插入代码片`
2022 - 11 - 13 & & 21 : 11 : 43
2022 - 11 - 13 21 : 11 : 43
3.秒数时间转化为字符串表示
"""
如果要将某个指定秒数时间(从epoch时间点开始计算),而不是当前时间,转化为字符串格式,可以这样写
"""
print ( time. localtime( 1434502529 ) )
time. strftime( '%Y-%m-%d %H:%M:%S' , time. localtime( 1434502529 ) )
time. struct_time( tm_year= 2015 , tm_mon= 6 , tm_mday= 17 , tm_hour= 8 , tm_min= 55 , tm_sec= 29 , tm_wday= 2 , tm_yday= 168 , tm_isdst= 0 )
'2015-06-17 08:55:29'
4.字符串时间转化为整数时间
print ( int ( time. mktime( time. strptime( '2015-08-01 23:59:59' , '%Y-%m-%d %H:%M:%S' ) ) ) )
5.ISO格式 转化为 本地时间
"""
有的时候,程序获取的时间是 ISO 8601 格式的字符串。
比如:
2008-09-03T20:56:35.450686+00:00
2008-09-03T20:56:35.450686Z
通过如下方法转化为 本地格式
"""
import dateutil. parser
dt = dateutil. parser. isoparse( '2008-09-03T20:56:35.450686+00:00' )
localdt = dt. astimezone( tz= None )
localdt. strftime( '%Y-%m-%d %H:%M:%S' )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
'2008-09-04 04:56:35'
6.获取某个时间 对应 的年月日时分秒数字
from datetime import datetime
print ( datetime. now( ) )
print ( "年:" , datetime. now( ) . year)
print ( "月:" , datetime. now( ) . month)
print ( "日:" , datetime. now( ) . day)
print ( "时:" , datetime. now( ) . hour)
print ( "分:" , datetime. now( ) . minute)
print ( "秒:" , datetime. now( ) . second)
print ( "毫秒:" , datetime. now( ) . microsecond)
print ( "星期几:" , datetime. now( ) . weekday( ) )
2022 - 11 - 13 21 : 11 : 43.766226
年: 2022
月: 11
日: 13
时: 21
分: 11
秒: 43
毫秒: 766226
星期几: 6
7.获得指定时间字符串对应星期几
thatDay = "2018-6-24"
from datetime import datetime
theDay = datetime. strptime( thatDay, "%Y-%m-%d" )
theDay. weekday( )
6
8.从某个时间点往前或者后推 一段时间
"""
如果我们想知道,2018年6月24日 往后推120天,是什么日期?星期几?
往前推120天,又是什么日期?星期几?
"""
thatDay = "2018-6-24"
from datetime import datetime, timedelta
theDay = datetime. strptime( thatDay, "%Y-%m-%d" ) . date( )
target = theDay + timedelta( days= 120 )
print ( target)
print ( target. weekday( ) )
target = theDay - timedelta( days= 120 )
print ( target)
print ( target. weekday( ) )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
2018 - 10 - 22
0
2018 - 02 - 24
5
9.获得指定日期那周的周一
thatDay = "2018-6-28"
from datetime import datetime, timedelta
theDay = datetime. strptime( thatDay, "%Y-%m-%d" ) . date( )
print ( thatDay)
weekMonday = theDay - timedelta( days= theDay. weekday( ) )
print ( timedelta( days= theDay. weekday( ) ) )
print ( weekMonday)
2018 - 6 - 28
3 days, 0 : 00 : 00
2018 - 06 - 25
10.获取某个月总共有多少天
from calendar import monthrange
mr = monthrange( 2011 , 2 )
print ( mr[ 1 ] )
print ( mr)
28
( 1 , 28 )