python语言time库和datetime库基本使用详解


Posted in Python onDecember 25, 2020

今天是边复习边创作博客的第三天,我今年大二,我们专业开的有这门课程,因为喜欢所以更加认真学习,本以为没人看呢,看了后台浏览量让我更加认真创作,这篇博客花了2个半小时的时间,结合自己所学,所思,所想写作,目的是为了方便喜欢Python的小白学习,也是一种自我鞭策吧!

python语言使用内置time库和datetime库来处理日期时间

相关术语的解释

  • UTC time Coordinated Universal Time,世界协调时,又称 格林尼治天文时间、世界标准时间。与UTC time对应的是各个时区的local time,东N区的时间比UTC时间早N个小时,因此UTC time + N小时 即为东N区的本地时间;而西N区时间比UTC时间晚N个小时,即 UTC time - N小时 即为西N区的本地时间; 中国在东8区,因此比UTC时间早8小时,可以以UTC+8进行表示。
  • epoch time 表示时间开始的起点;它是一个特定的时间,不同平台上这个时间点的值不太相同,对于Unix而言,epoch time为 1970-01-01 00:00:00 UTC。
  • timestamp(时间戳) 也称为Unix时间 或 POSIX时间;它是一种时间表示方式,表示从格林尼治时间1970年1月1日0时0分0秒开始到现在所经过的毫秒数,其值为float类型。 但是有些编程语言的相关方法返回的是秒数(Python就是这样),这个需要看方法的文档说明。需要说明的是时间戳是个差值,其值与时区无关。

调用库的三种方式:

以time库为例,调用其它库类似

from time import * (*代表time包含所有的时间处理函数,用到某个也可单定义,调用函数时直接使用,比如:clock())
import time  (调用函数方式,比如:time.clock())
import time as t (自定义库的名称,调用时方便,比如:t.clock())

time库的主要的三类函数:

以上面第三种库调用方式举例

1.时间获取:t.time();t.ctime();t.gmtime() #每种获取时间不一样,根据需求使用
2.程序计时:t.clock();t.perf_counter() #使用方式一样
3.时间格式化:t.strftime(format,t);t.strptime(string,format)
#format表示要定义的格式,t表示获取的时间,string表示字符串类型时间
    字符串格式化:%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)
 4.程序休眠:t.sleep()

#使用举例
import time as t
t0=t.gmtime()
print(t0)
t1="2020-12-23 19:23:20"
t2 = t.strptime(t1,"%Y-%m-%d %H:%M:%S")
t3 = t.strftime("%y/%m/%d %H:%M:%S")
print(t2)
print(t3)

打印结果:
C:\Users\86185\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/86185/PycharmProjects/untitled/Python复习/hk.py
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=23, tm_hour=12, tm_min=22, tm_sec=39, tm_wday=2, tm_yday=358, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=23, tm_hour=19, tm_min=23, tm_sec=20, tm_wday=2, tm_yday=358, tm_isdst=-1)
20/12/23  20:22:39

Process finished with exit code 0

time模块主要用于时间访问和转换,这个模块提供了各种与时间相关的函数。

方法/属性 描述
time.altzone 返回与utc时间的时间差,以秒为单位(西区该值为正,东区该值为负)。其表示的是本地DST 时区的偏移量,只有daylight非0时才使用。
time.clock() 返回当前进程所消耗的处理器运行时间秒数(不包括sleep时间),值为小数;该方法Python3.3改成了time.process_time()
time.asctime([t]) 将一个tuple或struct_time形式的时间(可以通过gmtime()和localtime()方法获取)转换为一个24个字符的时间字符串,格式为: "Fri Aug 19 11:14:16 2016"。如果参数t未提供,则取localtime()的返回值作为参数。
time.ctime([secs]) 功能同上,将一个秒数时间戳表示的时间转换为一个表示当前本地时间的字符串。如果参数secs没有提供或值为None,则取time()方法的返回值作为默认值。ctime(secs)等价于asctime(localtime(secs))
time.time() 返回时间戳(自1970-1-1 0:00:00 至今所经历的秒数)
time.localtime([secs]) 返回以指定时间戳对应的本地时间的 struct_time对象(可以通过下标,也可以通过 .属性名 的方式来引用内部属性)格式
time.localtime(time.time() + n*3600) 返回n个小时后本地时间的 struct_time对象格式(可以用来实现类似crontab的功能)
time.gmtime([secs]) 返回指定时间戳对应的utc时间的 struct_time对象格式(与当前本地时间差8个小时)
time.gmtime(time.time() + n*3600) 返回n个小时后utc时间的 struct_time对象(可以通过 .属性名 的方式来引用内部属性)格式
time.strptime(time_str, time_format_str) 将时间字符串转换为struct_time时间对象,如:time.strptime('2017-01-13 17:07', '%Y-%m-%d %H:%M')
time.mktime(struct_time_instance) 将struct_time对象实例转换成时间戳
time.strftime(time_format_str[, struct_time_instance]) 将struct_time对象实例转换成字符串,如果struct_time_instance不指定则取当前本地时间对应的time_struct对象

datetime库主要的四类函数:

datetime库是基于time库进行了封装;以import datetime as dt 为datetime库调用方式

1.date:表示的是日期对象 #dt.date
2.time;表示的是时间对象 #dt.time ;一般不用date和time函数,datetime函数包含其功能
3.datetime:表示的是日期时间对象#dt.datetime.now()表示获取当前时间;dt.strftime(format) # 按照 format 进行格式化输出
4.timedelta:主要用于定义计算时间跨度 #t=dt.timedelat(hours=10)表示定义时间跨度是10小时

用分隔符'''分类展示如下:

import datetime as dt
now = dt.datetime.now() # 获取当前datetime
print(now)
输出结果:2019-05-07 16:28:07.198690
'''
d = dt.date(2020, 12, 23)
print(d)
print('year:', d.year)
print('month:', d.month)
print('day:', d.day)
输出结果:
2020-12-23
year: 2020
month: 12
day: 23
'''
'''
date1=dt.date(2020,12,23)
timedel=dt.timedelta(days=4)#表示时间跨度为4天
print('四天后的日期是:', date1+timedel)
输出结果:四天后的日期是:2020-12-27
'''

最后配上一段小程序:文本进度条打印程序分析

import time
scale = 100 #这个可以随意设置,看需求
print("执行开始".center(scale//2,'-'))# .center(a,'b')函数是居中符,这条程序是将“执行开始”居中占字符为scale//2(可看需求自定义),b为填充符
starttime = time.clock() #time库内置函数,第一次使用是开始计时
for i in range(scale+1):
  a = '*' * i  #将'*'字符随i的增加而增加
  b = '.' * (scale - i) #将'.'字符随‘*'增加而减少,两个字符总数是scale的初始值数量
  c = (i/scale) * 100 #求百分比
  t = time.clock()-starttime #计算时间,第二次调用time.clock函数表示计时结束
  print("\r{:^3.0f}%[{}->{}]{:.2}s".format(c,a,b,t),end="")#字符格式化,看需求,自己玩就是咋好看咋格式化
  time.sleep(0.05) #time.sleep()函数表示让程序休眠,里面参数是休眠时间根据需求随意定义
print("\n"+"执行结束".center(scale//2,'-'))#同上;"\n表示换行打印";"+"连接符,具有连接功能

关于datetime模块的datetime类会在下面做详细讲解,这里简单说下time.struct_time。

time.struct_time包含如下属性:

下标/索引 属性名称 描述
0 tm_year 年份,如 2017
1 tm_mon 月份,取值范围为[1, 12]
2 tm_mday 一个月中的第几天,取值范围为[1-31]
3 tm_hour 小时, 取值范围为[0-23]
4 tm_min 分钟,取值范围为[0, 59]
5 tm_sec 秒,取值范围为[0, 61]
6 tm_wday 一个星期中的第几天,取值范围为[0-6],0表示星期一
7 tm_yday 一年中的第几天,取值范围为[1, 366]
8 tm_isdst 是否为夏令时,可取值为:0 , 1 或 -1

属性值的获取方式有两种:

  • 可以把它当做一种特殊的有序不可变序列通过 下标/索引 获取各个元素的值,如t[0]
  • 也可以通过 .属性名 的方式来获取各个元素的值,如t.tm_year。

需要说明的是struct_time实例的各个属性都是只读的,不可修改。

到此这篇关于python语言time库和datetime库基本使用详解的文章就介绍到这了,更多相关python time库和datetime库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python3.3实现乘法表示例
Feb 07 Python
python处理圆角图片、圆形图片的例子
Apr 25 Python
Python中的urllib模块使用详解
Jul 07 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
Mar 12 Python
Python 批量合并多个txt文件的实例讲解
May 08 Python
Python实现的简单排列组合算法示例
Jul 04 Python
Python功能点实现:函数级/代码块级计时器
Jan 02 Python
python 比较2张图片的相似度的方法示例
Dec 18 Python
Django数据结果集序列化并展示实现过程
Apr 22 Python
Python远程方法调用实现过程解析
Jul 28 Python
python 实现单例模式的5种方法
Sep 23 Python
如何使用 Flask 做一个评论系统
Nov 27 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 #Python
用python对excel进行操作(读,写,修改)
Dec 25 #Python
python Pexpect模块的使用
Dec 25 #Python
Python中读取文件名中的数字的实例详解
Dec 25 #Python
Python的logging模块基本用法
Dec 24 #Python
python 通过exifread读取照片信息
Dec 24 #Python
python 如何上传包到pypi
Dec 24 #Python
You might like
PHP 批量删除数据的方法分析
2009/10/30 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
vue中appear的用法
2017/08/17 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
vue-router 前端路由之路由传值的方式详解
2019/04/30 Javascript
js实现坦克移动小游戏
2019/10/28 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
python动态性强类型用法实例
2015/05/09 Python
Python实现统计代码行的方法分析
2017/07/12 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
超市营业员岗位职责
2013/12/20 职场文书
新学期班主任寄语
2014/01/18 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
还款承诺书范本
2015/01/20 职场文书
秋季运动会加油词
2015/07/18 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
PYTHON InceptionV3模型的复现详解
2022/05/06 Python
移除Selenium中window.navigator.webdriver值
2022/06/10 Python
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python