获取当前时间戳
>>> import time
>>> time.time()
1594002800.2053256
格式化日期
time.localtime() 格式化时间戳为本地的时间。 如果sec参数未输入,则以当前时间为转换标准。
>>> time.localtime(time.time())
time.struct_time(tm_year=2020, tm_mon=7, tm_mday=6, tm_hour=10, tm_min=36, tm_sec=29, tm_wday=0, tm_yday=188, tm_isdst=0)
tm_year | 2008 | 4位数年 |
tm_mon | 1 到 12 | 月 |
tm_mday | 1 到 31 | 日 |
tm_hour | 0 到 23 | 小时 |
tm_min | 0 到 59 | 分钟 |
tm_sec | 0 到 61 (60或61 是闰秒) | 秒 |
tm_wday | 0到6 (0是周一) | 一周的第几日 |
tm_yday | 1 到 366(儒略历) | 一年的第几日 |
tm_isdst | -1, 0, 1, -1是决定是否为夏令时的旗帜 | 夏令时 |
我们可以使用 time 模块的 strftime 方法来格式化日期:
>>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
'2020-07-06 10:43:51'
- %y 两位数的年份表示(00-99)
- %Y 四位数的年份表示(000-9999)
- %m 月份(01-12)
- %d 月内中的一天(0-31)
- %H 24小时制小时数(0-23)
- %I 12小时制小时数(01-12)
- %M 分钟数(00-59)
- %S 秒(00-59)
- %a 本地简化星期名称
- %A 本地完整星期名称
- %b 本地简化的月份名称
- %B 本地完整的月份名称
- %c 本地相应的日期表示和时间表示
- %j 年内的一天(001-366)
- %p 本地A.M.或P.M.的等价符
- %U 一年中的星期数(00-53)星期天为星期的开始
- %w 星期(0-6),星期天为星期的开始
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称
- %% %号本身
创建时间
>>> from datetime import datetime
>>> datetime(2019,4,5)#最少年月日
datetime.datetime(2019, 4, 5, 0, 0)
>>> datetime(2019,4,5,12,45)
datetime.datetime(2019, 4, 5, 12, 45)
datetime转换为timestamp
>>> datetime(2019,4,5,12,45).timestamp()
1554439500.0
timestamp转换为datetime
>>> datetime.fromtimestamp(1429417200.0)
datetime.datetime(2015, 4, 19, 12, 20)
str转换为datetime
>>> datestr='2015-6-1 18:19:59'
>>> datetime.strptime(datestr, '%Y-%m-%d %H:%M:%S')
datetime.datetime(2015, 6, 1, 18, 19, 59)
>>> print(datetime.strptime(datestr, '%Y-%m-%d %H:%M:%S'))
2015-06-01 18:19:59
datetime加减
加减可以直接用+和-运算符,不过需要导入timedelta这个类:
>>> from datetime import datetime, timedelta
>>> now = datetime.now()
>>> now
datetime.datetime(2015, 5, 18, 16, 57, 3, 540997)
>>> now + timedelta(hours=10)
datetime.datetime(2015, 5, 19, 2, 57, 3, 540997)
>>> now - timedelta(days=1)
datetime.datetime(2015, 5, 17, 16, 57, 3, 540997)
>>> now + timedelta(days=2, hours=12)
datetime.datetime(2015, 5, 21, 4, 57, 3, 540997)