time 与 datetime
2018-06-23 本文已影响0人
酷酷的图图
人生苦短 我用python
开始愉快的享(代)受(码)时间:
-
time
- 休眠
# 程序休眠,单位是秒
time.sleep(2.5)
- 时间戳 与 时间的 相互转换
第一步: 获得当前时间戳
# 时间戳:从1970年1月1日0:0:0 到 当前时间的间隔,单位是秒
time_stamp = time.time() # 获取当前时间戳
print(time_stamp) # 1521682259.0421598
第二步: 时间戳转时间
time_stamp = time.time() # 1529718016.3114526
time1 = time.localtime(time_stamp) # time.struct_time(tm_year=2018, tm_mon=6, tm_mday=23, tm_hour=9, tm_min=40, tm_sec=16, tm_wday=5, tm_yday=174, tm_isdst=0)
time2 = time.strftime('%Y-%m-%d %H:%M:%S', time1) # 2018-06-23 09:40:16
或者 转中文格式
# 参数2位时间元组类型 如果不填 则默认将当前时间按格式输出
time3 = time.strftime('%Yyear %mmonth %dday %Hhour %Mminute %Ssecond') # 安装当前时间 输出格式 2018year 06month 23day 09hour 50minute 10second
# 2018年 06month 23日 09时 50分 56秒
time4 = time3.replace("year",'年').replace('mouth','月').replace('day', '日').replace('hour','时').replace('minute','分').replace('second','秒')
第三步: 时间转时间戳
time5 = "2011-09-28 10:00:00"
# 中间过程,一般都需要将字符串转化为时间数组
time6 = time.strptime(time5,'%Y-%m-%d %H:%M:%S') #time.struct_time(tm_year=2018, tm_mon=6, tm_mday=23, tm_hour=10, tm_min=0, tm_sec=28, tm_wday=5, tm_yday=174, tm_isdst=0)
# 将"2011-09-28 10:00:00"转化为时间戳
time7 = time.mktime(time6) # 1317175200.0
- 格式化输出时间(不能按中文年月日格式化直接输出)
# 自定义时间的输出格式
# year 年 y/Y
# month 月 m
# day 日 d
# hour 时 H
# minute 分 M
# seconds 秒 S
time1 = time.strftime("%Y %m %d %H %M %S") # 2018 06 23 10 16 08 # 参数2位时间元组类型 如果不填则默认按照当前格式输出
time4 = time.strftime("%Y %m %d %H %M %S", time.localtime()) # 2018 06 22 22 22 40
time5 = time.strftime("%Y:%m:%d : %H-%M-%S ", time.localtime(time.time())) # 2018:06:22 : 22-22-40 # todo 注意中间可以用 : - 英文 填充 但不能用汉字填充
- 获取当前时间 (time datetime)
# 方式1:
import time
time1 = time.strftime("%Y year %m mouth %d day %H %M %S") # 2018 year 06 mouth 23 day 10 47 02
print(time1)
# 因为 strftime无法填充中文 所以可采用replace的方式 中文输出格式
print(time2 .replace("year", "年").replace("month","月")) # 2018年06月23day
# 方式2:
import datetime
time1 = datetime.datetime.now() # 获取当前时间 类型: <class 'datetime.time'>
time2 = time1.strftime("%Y year %m mouth %d day %H %M %S") # 2018 year 06 mouth 23 day 10 47 02
print(time2)
# 因为 strftime无法填充中文 所以可采用replace的方式 中文输出格式
print(time2 .replace("year", "年").replace("month","月")) # 2018年06月23day
# 方式3:
import time
time1 = time.localtime() # time.struct_time(tm_year=2011, tm_mon=9, tm_mday=28, tm_hour=10, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=271, tm_isdst=-1) 1317175200.0
# 将时间格式化输出:
year = time1.tm_year
month = time1.tm_mon
# 结果:2018年3月22日9时30分59秒
print("{}年{}月{}日{}时{}分{}秒".format(year, month, time1.tm_mday, time1.tm_hour, time1.tm_min, time1.tm_sec))
-
datetime
- 获取当前时间两种方式
# today:今天
date1 = datetime.datetime.today() # 当前日期为:2018-06-22 22:29:14.136743
print("当前日期为:{}".format(date1))
# now:现在
date2 = datetime.datetime.now() # 现在日期为:2018-06-22 22:29:14.136743
print("现在日期为:{}".format(date2))
- 格式化日期
date2 = datetime.datetime.now() # 结果:2018-06-22 22:29:14.136743
# 输出方式1: 自定义格式
date3 = date2.strftime("%Yyear%mmonth%dday")
# 因为strftime无法填充中文 所以采用replace的方式 中文输出格式
print(date3.replace("year", "年").replace("month","月")) # 2018年06月22day
#输出方式2: 日期格式输出
date7 = date2.date() # 输出日期部分 2018-06-23
date8 = date2.time() # 输出时间部分 10:57:06.655149 类型: <class 'datetime.time'>
print("年月日为{}".format(date7)) # 年月日为2018-06-22
- 获得时间间隔
# 获得一个时间间隔
date4 = datetime.timedelta(days=1)
print(date4) # 1 day, 0:00:00
# 当前时间 向 后推算一天
date5 = datetime.datetime.now() + date4
print("一天以后的时间为{}".format(date5)) # 一天以后的时间为2018-06-23 22:29:14.136743
# Friday March
print("一天以后的时间为{}".format(date5.ctime())) # 一天以后的时间为Sat Jun 23 22:29:14 2018
- 获取文件的修改时间
create_time = time.localtime(os.stat("login.txt").st_mtime)
转换格式
create_time1 = datetime.datetime(create_time.tm_year, create_time.tm_mon, create_time.tm_mday, create_time.tm_hour, create_time.tm_min, create_time.tm_sec) # 2018-06-23 22:29:14.136743
- 定时器
# 导入模块
from apscheduler.schedulers.blocking import BlockingScheduler
blocking = BlockingScheduler()
@blocking.scheduled_job("interval", seconds=1000, id="run") # 设置时间间隔 要调用的函数名
def run(): # 定时执行函数
ChouTi.authorized_car1("18790868582", "zhangzenan")
ChouTi.all_pages()
# 启动定时器
blocking.start()