大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

python-基础用法:datetime和time的常用方法

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