time模块

import time

print(time.time())#Python time time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数)
#>>>1561526498.1335661

print (time.localtime())#Python time localtime() 函数类似gmtime(),作用是格式化时间戳为本地的时间。 如果sec参数未输入,则以当前时间为转换标准。 DST (Daylight Savings Time) flag (-1, 0 or 1) 是否是夏令时。
#>>>time.struct_time(tm_year=2019, tm_mon=6, tm_mday=26, tm_hour=13, tm_min=21, tm_sec=38, tm_wday=2, tm_yday=177, tm_isdst=0)

t=time.localtime()
print (time.asctime(t))#Python time asctime() 函数接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串
#>>>Wed Jun 26 13:21:38 2019

t2=time.ctime()#Python time ctime() 函数把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。 如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于 asctime(localtime(secs))。该函数没有任何返回值。
print(t2)
#>>>Wed Jun 26 13:24:39 2019

time.sleep(2)#Python time sleep() 函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间

print(time.strftime('%y-%m-%d %H:%M:%S',time.localtime()))
#>>>19-06-26 13:31:42

#Python time strftime() 函数接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定。

time.strftime(format[, t])

参数说明:

  • format -- 格式字符串。
  • t -- 可选的参数t是一个struct_time对象

python中时间日期格式化符号:

  • %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 当前时区的名称
  • %% %号本身

 

实例:

时间记录器

# 第一行:必不可少的调用模块。
import time

input("欢迎使用“时间管理器”!请按回车继续。")

while True:
    task_name = input('请输入任务名:')
    task_time = int(input('你觉得自己至少可以专注这个任务多少分钟?输入 N 分钟'))
    input('此次任务信息:\n我要完成的任务:%s\n我至少要专注:%d分钟\n按回车开始专注:' % (task_name, task_time))
    # 下面应该要有两行代码,自动记录可以计算以及可以打印的开始时间。
    t_start = time.time()  # 获取开始时间
    geshi_start = time.strftime('%Y-%m-%d %H:%M:%S',
                                time.localtime(t_start))  # strftime接收以时间元组,并返回以可读字符串表示的当地时间,localtime()格式化

    # 这里可以加一个倒计时,实时显示还剩多少时间,可参考左侧提供的资料。代码量大概有5行。
    for t in range(task_time * 60, 0, -1):#分钟数乘以60,到0截止,间隔-1
        info = '请专注任务,还要保持专注 ' + str(t) + ' 秒哦!'
        print(info, end='')
        print("\b" * (len(info) * 2), end='', flush=True)  #
        ''' print() 函数会把内容放到内存中, 内存中的内容并不一定能够及时刷新显示到屏幕中(应该是要满足某个条件,这个条件现在还不清楚)。 使用flush=True之后,会在print结束之后,不管你有没有达到条件,立即将内存中的东西显示到屏幕上,清空缓存。 

使用场景:

1.尤其是在while循环中,要想每进行一次while循环体,在屏幕上更新打印的内容就得使用flush = True的参数。

2. 打开一个文件, 向其写入字符串, 在关闭文件f.close()之前, 打开文件是看不到写入的字符的。 要想在关闭之前实时的看到写入的字符串,应该用flush = True. 
'''
        time.sleep(1)
    print('你已经专注了 %d 分钟,很棒~再加把劲,完成任务!' % task_time)  # 倒计时后,才继续运行之后的代码。

    task_status = input('请在任务完成后按输入y:')

    if task_status == 'y':
        # 下面应该要有两行代码,自动记录可以计算以及可以打印的结束时间。
        # 有了自动记录的始末时间后,记录的代码也需要随之改变。
        t_end = time.time()
        t_last = (t_end - t_start) / 60  # 结束时间减去开始时间,换算成分钟数
        geshi_end = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(t_end))  # 格式化输出结束时间
        start_end = geshi_start + '--' + geshi_end + '\n'
        with open('C:\\Users\\Administrator\\Desktop\\text\\timelog2.txt', 'a', encoding='utf-8') as f:
            f.write(task_name + ' 的预计时长为:' + str(task_time) + '分钟\n')
            f.write(task_name + ' 的实际时长为:' + str(t_last) + '分钟\n具体时间为:' + start_end)
        again = input('建立一个新任务请按 y, 退出时间日志记录器请按 q:')
        if again == 'q':
            break
    else:
        print('抱歉,你的输入有误。请重启时间记录器。')

print('愿被你善待的时光,予你美好的回赠。')

你可能感兴趣的:(Python基础语法学习笔记)