Python_时间管理

代码中的时间时间戳(Timestamp):1473525444

时间字符串(Format String):2015-02-14 11:25:11

结构化时间:(struct_time):(year=2018, monch=5, day=1, hour=16, min=12, sec=6)

1、常用的时间模块time

datetime

python-dateutil(pip install)

常用的操作:时间各种格式的表示

各种加减运算

使用time模块#!/usr/bin/env python

import time

print(time.time())

>>>1542443575.7989876 # time.time() 输出的结果为时间戳

例1:使用时间戳来判断代码运行的时间#!/usr/bin/env python

import time

def case():

start_time = time.time()

Your_name = input("Please enter your name:")

Your_pwd = input("Please enter your password:")

stop_time = time.time()

print(f"恭喜您输入成功,用时时间为{stop_time - start_time}秒")

if __name__ == "__main__":

case()

>>> 输出结果为:

Please enter your name:延凯

Please enter your password:pwd23

恭喜您输入成功,用时时间为4.129451036453247秒

使用time.sleep()#!/usr/bin/env python

import time

for i in range(6):

time.sleep(1)

print(i)

>>>

0

-----------每隔一秒输出内容

1

-----------每隔一秒输出内容

2

-----------每隔一秒输出内容

3

-----------每隔一秒输出内容

4

-----------每隔一秒输出内容

5

二、结构化时间与时间戳的转换

2.1、结构化时间使用time.localtime()模块如下:print(time.localtime()) # 此结构化时间输出的内容为当前的结构化时间

>>>time.struct_time(tm_year=2018, tm_mon=11, tm_mday=17, tm_hour=16, tm_min=43, tm_sec=53, tm_wday=5, tm_yday=321, tm_isdst=0)

例1:将时间戳转换为结构化时间print(time.localtime(1525617114)) # 括号中的数字为时间戳,此代码能够将时间戳转换为结构化时间,输出如下:

>>>time.struct_time(tm_year=2018, tm_mon=5, tm_mday=6, tm_hour=22, tm_min=31, tm_sec=54, tm_wday=6, tm_yday=126, tm_isdst=0)

例2:将结构化时间转换为时间戳print(time.mktime(time.struct_time(time.localtime()))) # 括号中的time.localtime() 获取当前的结构化时间,使用mktime 将结构化时间转换为时间戳

>>>>1542444612.0 #

三、结构化时间与字符串类型时间的转换

例1:将结构化时间转换为字符串类型的时间print(time.strftime("%Y-%m-%d %X", time.localtime())) # 使用time.strftime()

>>>2018-11-17 16:52:34

# %Y == 年 == year

# %m == 月 == month

# %d == 日 == day

# %X === 表示当前时间

例2:将字符串类型的时间转换为结构化的时间print(time.strptime("2018-11-17 17:03:29","%Y-%m-%d %X"))

>>> time.struct_time(tm_year=2018, tm_mon=11, tm_mday=17, tm_hour=17, tm_min=3, tm_sec=29, tm_wday=5, tm_yday=321, tm_isdst=-1)

四、datetime模块的应用

4.1、time和datetime的区别?

time

Python 文档里,time是归类在Generic Operating System Services中,换句话说, 它提供的功能是更加接近于操作系统层面的。通读文档可知,time 模块是围绕着 Unix Timestamp 进行的。

该模块主要包括一个类 struct_time,另外其他几个函数及相关常量。 需要注意的是在该模块中的大多数函数是调用了所在平台C library的同名函数, 所以要特别注意有些函数是平台相关的,可能会在不同的平台有不同的效果。另外一点是,由于是基于Unix Timestamp,所以其所能表述的日期范围被限定在 1970 - 2038 之间,如果你写的代码需要处理在前面所述范围之外的日期,那可能需要考虑使用datetime模块更好

datetime

datetime 比 time 高级了不少,可以理解为 datetime 基于 time 进行了封装,提供了更多实用的函数。在datetime 模块中包含了几个类,具体关系如下:timedelta # 主要用于计算时间跨度

tzinfo # 时区相关

time # 只关注时间

date # 只关注日期

datetime # 同时有时间和日期

4.2、使用datetime

使用datetime.now查看当前的时间#!/usr/bin/env python

# -*- coding:utf-8 -*-

print(datetime.now())

>>>2018-11-17 17:17:26.024017

例1:格式化输出时间from datetime import datetime

print("{dt:%Y-%m-%d}".format(dt=datetime.now()))

>>>2018-11-17

例2:使用string输出print(f"{datetime.now():%Y-%m-%d}")

>>>2018-11-17

4.3、使用datefrom datetime import date # 导入date方法

D = date(2018, 11, 6) # date() 可直接自定义日期

print(D)

例1:使用date.today() 查看当前日期from datetime import date

D = date.today()

print(D)

>>> 2018-11-17

4.4、使用timefrom datetime import time

T = time(11, 6)

print(T)

>>>11:06:00

五、时间中的各种计算

使用时间计算,我们需要用到timedelta

例1:D = timedelta(days=1)

print(D)

>>> 1 day, 0:00:00

例2:H = timedelta(hours=3)

print(H)

>>>3:00:00

例3:DT = timedelta(days=1, hours=3)

print(DT)

>>>1 day, 3:00:00

例4:时间的相加如下:from datetime import timedelta

from datetime import date

dt = date.today()

D = timedelta(days=1, hours=3)

print(f"今日的时间为{dt},加了{D}时间,最终的时间为:{dt + D}")

>>> 今日的时间为2018-11-17,加了1 day, 3:00:00时间,最终的时间为:2018-11-18

例5:同时时间也可以相乘from datetime import timedelta

from datetime import date

dt = date.today()

D = timedelta(days=1, hours=3)

print(f"今日的时间为{dt},加了{D}时间,时间为:{dt + D}随后又乘了10天 最终结果为:{dt + D * 10}")

>>>今日的时间为2018-11-17,加了1 day, 3:00:00时间,时间为:2018-11-18随后又乘了10天 最终结果为:2018-11-28

六、从时间戳生成datetimeimport time

from datetime import datetime

dt = time.time()

print(datetime.utcfromtimestamp(dt))

>>>2018-11-17 10:08:44.600438

七、格式化字符串表示时间strftime: % -> 1999-12-12, 把代码里面的时间对象转成人类认识的字符串,f:format

strptime: 2000-12-12 -> object,把人类认识的字符串,转成代码里面的对象,p,parsefrom datetime import datetime

dt = datetime(2018, 11, 6, 11, 13, 59)

print(dt)

print(dt.strftime("%Y/%m/%d %X"))

print(dt.strptime("2018/11/06 11:13:59", "%Y/%m/%d %X"))

>>>

2018-11-06 11:13:59

2018/11/06 11:13:59

2018-11-06 11:13:59

八、使用dateutil更好的控制时间pip install python-timeutil # 安装timeutil

案例1:查看这周的周三是几号D = datetime.now()

print(D + relativedelta(weekday=WE, weeks=-1))

案例2:查看下周的周三是几号print(D + relativedelta(weekday=WE))

案例3:查看下下周的周三是几号print(D + relativedelta(weekday=WE, weeks=1))

案例4:查看上周的周三是几号print(D + relativedelta(weekday=WE, weeks=-2))

案例5:查看上上周的周三是几号print(D + relativedelta(weekday=WE, weeks=-3))

输出结果2018-11-14 18:35:00.375102

2018-11-21 18:35:00.375102

2018-11-28 18:35:00.375102

2018-11-07 18:35:00.375102

2018-10-31 18:35:00.375102

过一个月,三个月是哪天?from datetime import date

print(date(2018, 1, 30) + relativedelta(months=+4))

print(date(2018, 1, 30) + relativedelta(months=-4))

>>>

2018-05-30

2017-09-30

实例:编写一个闹钟#!/usr/bin/env python

# -*- coding:utf-8 -*-

import sys

import time

import subprocess

set_time = input("请您设置闹钟时间(例如:8:00):")

print("当前的时间为:")

def clock():

start = True

while start:

local_time = time.localtime()

now = time.strftime("%H:%M:%S", local_time)

print(now + "

", end="", flush=True)

if now[:5] == set_time.rjust(5, "0"):

print("起床时间到了!!!!!!")

subprocess.Popen(["start", "好运来.mp3"], shell=True)

start = False

clock()

歌声随风响起~

python闹钟界面程序_「Python编程」自由管理时间之编写一个小闹钟起床相关推荐

  1. python用户登录程序_「Python」每日一练:函数的应用之注册登录程序

    编程题 函数的应用之注册登录程序 任务内容:要求模拟系统注册及登录的情境,注册密码要求:密码是6位或以上,必须包涵大写字母.小写字母.数字.程序若未退出前,则一直循环运行. 程序编写要求:按要求完善各 ...

  2. docker php composer 使用_「PHP编程」如何使用Docker制作自己的LNMP/LAMP镜像

    LNMP和LAMP是PHP常用的两种运行环境,L代表Linux,N代表Nginx,A代表Apache,M代表Mysql,P代表PHP.在文章<「PHP编程」安装开发环境太烦?告诉你几个简单方法, ...

  3. composer 安装dev包_「PHP编程」如何搭建私有Composer包仓库?

    在前一篇文章「PHP编程」如何制作自己的Composer包?中,我们已经介绍了如何制作自己的 composer 包,以及如何使用 composer 安装自己制作的 composer 包.不过,这其中有 ...

  4. python学生数据完善程序_「Python」每日一练:学生数据完善程序

    编程题 1.现有一程序已创建了4个列表,这4个列表中有添加元素,但列表中的数据不完善,有一定的错误,内容如下所示: list1=["学号","姓名"," ...

  5. python写机器人程序_用Python写的一个多线程机器人聊天程序

    本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...

  6. python从零开始到精通_「Python 入门学习指南」0基础小白助你从入门到精通!

    Python比较简单,非常适合初学者入门,内置了各种库,还有丰富的大约13万第三方库,掌握了语法和编程思维后,可以直接使用这些库做出自己的产品.这篇 Python 入门学习指南,针对没有任何编程经验. ...

  7. python写日历程序_利用Python自动化生成逼格高的日历!

    本次内容有感于<Python编程快速上手-让繁琐工作自动化>. 根据书中的「处理Excel电子表格」章节内容,做出一份专属日历. 使用的模块为openpyxl,一个能读取和修改Excel电 ...

  8. 用python写投票程序_大话python最终篇,web.py 开发的投票程序demo

    概述 开发语言         python Web开发框架  web.py 前端开发框架   vuejs+elementui 数据库              mysql 设计思路 首先是数据库设计 ...

  9. python 客户端应用程序_创建python Web服务和C#客户端应用程序的最佳方法 - c#

    我正在寻找一种简单可靠的方法来创建Python Web Service并从.Net(c#)应用程序中使用它. 我发现了很多不同的库,其中一个库比另一个库好,但是似乎没有人提供关于Python Web ...

最新文章

  1. 【OpenGL】二、Visual Studio 2019 配置 GitHub ( 下载并安装 GitHub 扩展 | 配置 GitHub )
  2. TypeScript学习笔记1:变量赋值及书写方式
  3. 不可变集合相比可变集合_简单的基准测试:不可变集合VS持久集合
  4. dataframe存到mysql中_pandas实现to_sql将DataFrame保存到数据库中
  5. 计算机和网络老是断开,电脑插上网线还是显示断开连接怎么办
  6. 50 MM配置-库存管理和实际库存-自动建立库存地点
  7. powershell / ps脚本ps1中.exe(可执行文件)没反应
  8. Java面试题:热情盛夏,分享Java大厂面试百题
  9. 设备密码的设置以及遗忘重设置
  10. 10大计算机经典算法
  11. PPT(office365)之背景图片、矢量图标、颜色搭配使用心得
  12. 如何禁止Windows自动更新AMD显卡驱动
  13. Mac Karabiner 设置
  14. 设计师:室内设计师的简介、工作内容、工作要求、设计常识(硬装/软装/榻榻米/马卡龙/地台/公共空间/玄关/闭水实验、家具知识(欧式雕花家具-欧式雕花家具)、室内设计常用尺寸之详细攻略
  15. [python爬虫] bilibili视频评论翻页功能
  16. 关于spring配置文件context:property-placeholder
  17. 神秘大佬写的的运营思维课
  18. 3.6 使用矩形网格工具绘制围棋棋盘 [Illustrator CC教程]
  19. Win7安装Python补丁要求
  20. 曲线坐标轴范围及刻度的自适应算法综述

热门文章

  1. 马杰c语言程序设计基础,【我校自编教材】程序设计基础(C语言版)
  2. socket、端口、进程的关系
  3. IDEA导入旧版本项目maven不会自动下载依赖JAR包处理方法
  4. Python离线环境
  5. Apache的Mod_rewrite学习(RewriteRule重写规则的语法)
  6. javascript使用闭包模拟私有属性和方法
  7. Ural_1003 Parity(并查集)
  8. 微软提出第一个端到端的Video Captioning方法:SWIN BERT,涨点显著!
  9. 深度学习之PyTorch物体检测实战——新书赠送活动
  10. 美人秀色空绝世,我用PS-GAN试伊妆