datetime是什么?和datetime.datetime的区别?time又与datetime之间的区别
1.开发中有关时间是我们经常遇到的问题。很多时候我们都是混用,这里记录一下日常使用情况.在文章的末尾,会写一个案例。
2.示例:2017-01-01 五个月后 九个月后是什么时间。方法很简单
两种时间的区分
1.开发中遇到的无非是东八区 + UTC + 时间戳
2.本地时间也就是东八区时间(北京时间),而UTC则是国际通用时间
datetime的使用
- datetime 常用方法
- datetime.now():获取当前的日期和时间
- datetime.now().date():返回当前日期
- datetime.now().time():返回当前时间
- datetime.timedelta:表示时间间隔(可用于时间的加减,当前时间的两小时前)
- datetime.tzinfo: 与时区的相关信息
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2018, 11, 10, 23, 16, 5, 899480)
>>> datetime.now().date()
datetime.date(2018, 11, 10)
>>> datetime.now().time()
datetime.time(23, 16, 24, 17636)
>>>now = datetime.now()
>>>yToday = now - ddatedelta(days=1)
datetime.datetime(2018, 11, 9, 23, 19, 28, 630771)
time的使用
- time 常用的几个方法
- time.time:时间戳
- time.struct_time 时间元组用法介绍
- time.clock:返回的当前程序cpu执行的时间->可用于程序计算程序执行多久
- time.sleep:延迟一个时间段
- time.gmtime:将时间戳转换为UTC时间元组格式,接受一个浮点型的时间戳参数,默认当前时间戳,返回的是struct_time格式
- time.localtime:将时间戳转换为本地时间元组格式,接受浮点时间,默认当前时间戳
- time.asctime:将时间元组转换为字符串形式,接受时间元组,默认localtime返回值
- time.mktime:将本地时间元组转换为时间戳。接受一个时间元组,必选
- time.strftime():时间格式化输出,默认当前时间,接受时间元组参数
>>>import time
>>>time.time()
1541768287.6579099
>>>time.clock()
0.3487
>>>time.gmtime()
time.struct_time(tm_year=2018, tm_mon=11, tm_mday=10, tm_hour=13, tm_min=51, tm_sec=45, tm_wday=5, tm_yday=314, tm_isdst=0)
>>>time.localtime()
time.struct_time(tm_year=2018, tm_mon=11, tm_mday=10, tm_hour=13, tm_min=51, tm_sec=45, tm_wday=5, tm_yday=314, tm_isdst=0)
>>>time.asctime()
'Sat Nov 10 21:59:14 2018'
>>>time.mktime(time.localtime())
1541858346.0
>>> time.strftime()
2018-11-10
>>>time.strftime('%Y-%m-%d',time.localtime())
2018-11-10
>>>time.strptime("2017-12-26 14:35:17","%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=26, tm_hour=14, tm_min=35, tm_sec=17, tm_wday=1, tm_yday=360, tm_isdst=-1)
# 上述代码 出现 两个关键词 时间戳 和时间元组
#时间错不解释了
# 时间元组是个好东西,用法上面有介绍,可以利用元组 和datetime转换
datetime 与time之间的转换
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2018, 11, 10, 23, 24, 40, 991604)
# 根据时间戳 转换成datetime了
# time_struct与datetime之间的转换可以通过中间状态string来完成
时间加减法案例
"""
tim:str日起
months:int 类型
"""
def _deadTime(months,tim):
dt = datetime.strptime(tim,'%Y-%m-%d')
month = dt.month -1 + months
year = dt.year + month / 12
month = month % 12 + 1
strTime = "{}-{}-15".format(int(year),month)
return strTime