您的位置:首页 > 编程语言 > Python开发

python 中 time,datetime模块中各个类常用方法汇总

2018-12-11 16:55 1001 查看

一、time模块

time模块中时间戳,时间结构化对象,互相转换
import time

print(time.time())
# 时间戳,从1970年1月1日到现在的秒数

t =time.localtime()
# 获取时间结构化对象

print(t.tm_year)
# 结构化对象中年份,还有很多属性

print(time.mktime(time.localtime()))
# 将结构化时间转化为时间戳

重点
#将结构化时间对象转化为字符串时间,得到一个字符串。
strftime(格式化时间模型,结构化时间对象)

%x 相当于%H:%M:%S
print(time.strftime("%Y-%m-%d %X",time.localtime()))

将字符串时间转成结构化时间,前后格式必须一致,得到的是结构时间对象
print(time.strptime(“2016:1:1 17:50:36”,"%Y:%m:%d %X"))

补充:python中时间比大小指的是datetime类型,字符串时间比大小是按照字符顺序,从前往后依次比较字符的ASCII数值,例如‘abc’要小于‘abd’

***注意:
time模块中的时间戳float型,可以用来做数字运算
结构化时间对象不能用于做数字运算,字符串时间不能用于做数字运算.
time.sleep()可以是程序休眠一定时间,可用来模拟并发

二、datetime模块

import datetime

datetime中包含如下类:

“”"
date 日期对象,常用的属性有year, month, day
time 时间对象
datetime 日期时间对象,常用的属性有hour, minute, second, microsecond
timedelta 时间间隔,即两个时间点之间的长度
“”"

1.date类

date对象有year,month,day三部分组成

today = datetime.date.today()
print(today)

#date对象转化为字符串,进行格式化输出

print(today.__format__('%Y:%m:%d'))

2.time类

time对象由time类由hour小时、minute分钟、second秒、microsecond毫秒
和tzinfo五部分组成,其中可以省略后面部分的参数

time = datetime.time(12,20,59)
print(time)

time对象转化为字符串
print(time.format("%H-%M-%S"))
print(time.strftime("%H-%M-%S"))

3.datetime类

datetime类其实是可以看做是date类和time类的合体,其大部分的方法和属性都继承于这二个类

专属于datetime的类和方法now = datetime.datetime.now()
# 创建datetime对象
now = datetime.datetime(2017,11,11,20,50,10)
print(type(now))

根据字符串日期,转化为datetime对象,参数一和参数二的格式必须对应

dt = datetime.datetime.strptime(“2018-11-11 20:53:20”,"%Y-%m-%d %H:%M:%S")
print(dt)

datetime模块中一个time对象和一个date对象,可以合并成一个datetime对象
now = datetime.datetime.now()

其中now.date()是从datetime对象中获取date对象,now.time()从datetime对象中获取time对象
print(datetime.datetime.combine(now.date(),now.time()))

注意:
1.datetime对象在自定义时间的时候如果没有只指定了date部分属性,time属性按0来设置。如:custume = datetime.datetime(2017,11,11)打印custume获取的结果是2017-11-11 00:00:00,但是前面的日期格式一定要符合日期的规范,否则会报错.
2.datetime模块中定义的date,time,datetime对象都可以用来做数字运算操作。

4.timedelta类

timedelta类是用来计算二个datetime对象的差值的,timedelta方法,传递常用参数有,years,months,days,hours,minitus,seconds

#这里给的都是一些小型的例子

获取时间差,仍然是在datetime类中实现的

today = datetime.datetime(2018,11,20,22)
yesterday = datetime.datetime(2018,11,19,21,30)
print(today-yesterday)

计算当前时间向后八小时,五分钟,四秒的时间

t1 = datetime.datetime.now()
t2 = t1 + datetime.timedelta(hours=8,minutes=5,seconds=4)
print(t2)

获取现在的时间是周几,获得的是整形数字

today = datetime.datetime.now()
today_weekday = today.isoweekday()

计算上周一和周日的日期

1.先获取今天日期
today = datetime.date.today()
#2.先回到本周周一
# 2.1获取今天是周数
today_weekday = today.isoweekday()
#2.2今天日期减去今天的周数+1
this_monday = today-datetime.timedelta(today_weekday-1)
#3.本周周一减去7天就是上周一
last_moday = this_monday - datetime.timedelta(days=7)
print(last_moday)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: