python时间模块(time,datetime);

Python日期和时间

Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能;

Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间;

每个时间戳都是从某个时间到1970年1月1日 00:00:00的差值,时间间隔是以秒为单位的浮点小数;

Python 的 time 模块下有很多函数可以转换常见日期格式,如函数time.time()用于获取当前时间戳;

python有两个重要的时间模块,分别是time和datetime;

1、时间戳:time.time()(距离1970-01-01 00:00:00的总秒数

import time
print(time.time())

#1562642630.3409584

2、time.localtime

该函数能将一个时间戳转换成元组的形式,如果没有指定时间戳,默认使用当前时间的时间戳。需要注意的是返回的时间是当地时间。

time.struct_time(tm_year=2019(年),   tm_mon=7(月),    tm_mday=(日),

tm_hour=11(时),       tm_min=27(分),    tm_sec=39(秒,0-61),

tm_wday=1(一周第几日,0-6 0是周一),       tm_yday=190(一年第几日,0-266 儒略历), tm_isdst=0(夏令时));
此元组有9个元素(年,月,日,时,分,秒,周几,年中第几天,是否夏令时)

>>> import time
>>> print(time.localtime())
time.struct_time(tm_year=2019, tm_mon=7, tm_mday=9, tm_hour=11, tm_min=27, tm_sec=39, tm_wday=1, tm_yday=190, tm_isdst=0)

3、time.gmtime

该函数和localtime()的功能一样,只是它返回的时间是格林威治天文时间(UTC),也就是世界标准时间。中国时间为UTC+8。

>>> import time
>>> print(time.gmtime())
time.struct_time(tm_year=2019, tm_mon=7, tm_mday=9, tm_hour=3, tm_min=43, tm_sec=36, tm_wday=1, tm_yday=190, tm_isdst=0)

4、time.sleep()

推迟调用线程的运行,传入几秒,休息几秒;

import time
print(time.time())
time.sleep(3)
print(time.time())

#1562644298.8693473
#1562644301.8699615

5、time.mktime()

该函数将一个元组转换成时间戳(1970纪元后经过的浮点秒数)。

>>> import time
>>> print(time.mktime(time.localtime()))
1562651251.0

6、time.clock()

用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。

>>> import time
>>> print(time.clock())
0.04

7、time.strftime

接收以时间元组,并返回以可读字符串表示的当地时间;

import time
str_time = time.localtime()
print(time.strftime('%Y--%m--%d %H:%M:%S',str_time))    #字符串时间;
print(time.strftime('%Y--%m--%d %H:%M:%S'))    #如果没有参数默认传入time.localtime();

#2019--07--09 17:21:50
#2019--07--09 17:21:50

8、time.strptime

把一个时间字符串解析为时间元组;

import time
print(time.strptime('2019-07-08 21:06:03','%Y-%m-%d %H:%M:%S'))
a = time.strptime('2019-07-08 21:06:03','%Y-%m-%d %H:%M:%S')
print(a.tm_year)
print(a.tm_mon)
print(a.tm_mday)
print(a.tm_wday)
time.struct_time(tm_year=2019, tm_mon=7, tm_mday=8, tm_hour=21, tm_min=6, tm_sec=3, tm_wday=0, tm_yday=189, tm_isdst=-1)
2019
7
8
0

9、time.asctime()

接受时间元组并返回一个可读的形式为"Tue Jul  9 17:41:15 2019"(2019年7月9日 周二17时41分15秒)的24个字符的字符串。

如果没有传入参数,默认传入time.localtime();

>>> import time
>>> time.asctime()
'Tue Jul  9 17:41:15 2019'

10、time.ctime()

该函数将一个时间戳转换成格式化时间。如果没有传入参数,默认传入time.time()

>>> import time
>>> time.ctime()
'Tue Jul  9 18:05:24 2019'

datetime 模块

方法含义备注
datetime.datetime.now() 2019-07-09 18:13:23.803243
datetime.datetime.now() + datetime.timedelta(days=3)当前时间+3天2019-07-12 18:21:31.192274
current_time.replace(year=1977)更改当前时间2005-07-09 18:26:31.365145
datetime.date.fromtimestamp(time.time())时间戳直接转成日期格式2019-07-09

当前时间

>>> import datetime
>>> print(datetime.datetime.now())
2019-07-09 18:13:23.803243

当前时间加三天

>>> import datetime
>>> print(datetime.datetime.now() + datetime.timedelta(3))   #如果要减三天就把参数改为-3
2019-07-12 18:21:31.192274

当前时间加两个小时

>>> import datetime
>>> print(datetime.datetime.now() + datetime.timedelta(hours=2))
2019-07-09 20:24:23.317376

#################################################################
import time
import datetime
cur_time=datetime.datetime.now()
print(cur_time.replace(year=2005))      #2005-07-09 18:29:19.672567  修改时间
print(datetime.date.fromtimestamp(1234))    #1970-01-01 
print(datetime.date.fromtimestamp(time.time()))     #2019-07-09   时间戳直接转换日期格式;

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值