Python模块之time、datetime

python内置模块系列(一):time模块与datetime

time模块是python内置查看当前时间戳的一个模块

一 time

1 获得时间戳

时间戳:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行‘’type(time.time())‘’,返回的是float类型。

import time
print(time.time())
# 运行结果 1539678307.779871

2 结构化时间字符串

import time
print(time.localtime()) # 返回一个元祖对象,里面是每个时间的值(东八区)
# 运行结果 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=16, tm_hour=16, tm_min=48, tm_sec=4, tm_wday=1, tm_yday=289, tm_isdst=0)
import time
print(time.localtime().tm_year) # 单独获取某个时间属性
# 运行结果 2018
import time
print(time.gmtime()) # 世界统一时间,比北京时间晚8小时
# 运行结果 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=16, tm_hour=8, tm_min=51, tm_sec=16, tm_wday=1, tm_yday=289, tm_isdst=0)

3 格式化的字符串时间

import time 
print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
print(time.strftime('%Y-%m-%d %X %p'))
# 运行结果 
# 2018-10-16 16:54:56 PM
# 2018-10-16 16:54:56 PM

4 三种格式之间的相互转换

  1. 时间戳转为结构化
import time
print(time.localtime(time.time()))
# 运行结果 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=16, tm_hour=16, tm_min=57, tm_sec=18, tm_wday=1, tm_yday=289, tm_isdst=0)
  1. 结构化转字符串
import time
print(time.strftime("%Y-%m-%d",time.localtime(time.time())))
# 运行结果 2018-10-16
  1. 字符串转结构化
import time
print(time.strftime('2018-10-16', '%Y-%m-%d'))
# 运行结果 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=288, tm_isdst=-1)
  1. 结构化转时间戳
import time
print(time.mktime(time.strptime('2018-10-15', '%Y-%m-%d')))
# 运行结果 1539532800.0
  1. 格林威治时间
import time
print(time.asctime(time.localtime()))
print(time.ctime())
# 运行结果
# Tue Oct 16 17:12:34 2018
# Fri Jan  2 08:00:00 1970

二 datetime

datetime是一个包,里面包含对时间的处理和日期的处理

  1. 获取当前详细时间
import datetime
print(datetime.datetime.now())
# 运行结果 2018-10-16 17:25:16.186114
  1. 获取时间的某一部分
import datetime
print(datetime.datetime.now().hour) # 分钟、年份等同理
# 运行结果 17
  1. 替换时间的某一部分
import datetime
t1 = date.datetime.now()
t1 = t1.replace(year=2019)
print(t1)
# 运行结果 2019-10-16 18:36:42.166986
  1. 时间差对象
import datetime
t2 = datetime.timedelta(weeks=1)
t3 = datetime.datetime.now()
print(t2 + t3)
# 运行结果 2018-10-23 18:40:10.481854
posted @ 2018-10-16 20:26  rsuxwvilc  阅读(115)  评论(0编辑  收藏  举报