Python之时间和日期使用小结


Posted in Python onFebruary 14, 2019

对于日期的操作可以说是比较常见的case了,日期与格式化字符串互转,日期与时间戳互转,日期的加减操作等,下面主要介绍下常见的需求场景如何实现

1. 基本包引入

主要需要引入时间和日期的处理包,后面的基本操作都是基于此

import datetime
import time

2. 获取当前时间

获取当前时间,有几种方式,分别使用time和datetime来演示

a. time

获取当前时间,格式化为字符串输出

now = time.strftime("%Y-%m-%d %H:%M:%S")
print(now)

获取当前时间,以时间戳方式输出,结果为float类型,单位为s

now=time.time()
print(now)

Python之时间和日期使用小结

b. datetime

直接调用now()函数获取当前时间,返回datetime类型对象

now = datetime.datetime.now()
print(now)

Python之时间和日期使用小结

3. 时间戳转datetime

函数: datetime.datetime.fromtimestamp()

将时间戳转换为datetime类型,因为后者可以进行日期的计算(如常见的加减或者格式化)

# 获取当前的时间戳
now = time.time()
# 将时间差转换为datetime对象
date = datetime.datetime.fromtimestamp(now)
print(date)

Python之时间和日期使用小结

4. 时间戳转格式化日期a. time

函数 time.strftime(format, localtime) 和 time.localtime(timestamp)

借助time的time.strftime函数来实现转换,这里还需要做一个额外的处理,将时间戳转换为struct_time 对象

now = time.time()
# 首先格式化时间戳为struct_time对象,接着格式化输出
time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(now))

Python之时间和日期使用小结

b. datetime

函数 datetime.datetime.fromtimestamp 与 datetime.datetime.strftime()

借助前面的知识点即可实现,先将timestamp转换为datetime, 然后将datetime格式化为字符串

now=time.time()
date =datetime.datetime.fromtimestamp(now)
date.strftime('%Y-%m-%d %H:%M:%S')

Python之时间和日期使用小结

5. 字符串转时间戳

函数 strptime(str) 与 time.mktime(struct_time)

前面格式化输出字符串时,主要利用的是strftime,这里则主要使用 strptime

now='2019-02-11 18:45:22'
struct_time=time.strptime(now , '%Y-%m-%d %H:%M:%S')
timestamp=time.mktime(struct_time)

Python之时间和日期使用小结

6. 字符串转datetime

函数 datetime.datetime.strptime(str, format)

依然使用strptime函数来实现转换

now='2019-02-11 18:45:22'
date=datetime.datetime.strptime(now, '%Y-%m-%d %H:%M:%S')

7. datetime 转字符串

函数 datetime.datetime.strftime(format)

利用strftime来实现

now = datetime.datetime.now()
now.strftime('%Y-%m-%d %H:%M:%S')

Python之时间和日期使用小结

8. datetime 转时间戳

函数 datetime.datetime.timestamp()

结合前面的这个就比较好实现了

now = datetime.datetime.now()
now.timestamp()

Python之时间和日期使用小结

9. datetime转struct_time

now = datetime.datetime.now()
# 转换为 struct_time 对象
t=now.timetuple()
# struct_time 输出时间戳
timestamp=time.mktime(t)

Python之时间和日期使用小结

10. 日期加减操作

函数 datetime.timedelta

日期的加减操作,这里主要是datetime对象来操作,一个简单的例子如下

now = datetime.datetime.now()

# 前一小时
d1 = now - datetime.timedelta(hours=1)
print(d1.strftime("%Y-%m-%d %H:%S:%M"))

# 前一天
d2 = now - datetime.timedelta(days=1)
print(d2.strftime("%Y-%m-%d %H:%S:%M"))

# 上周日
d3 = now - datetime.timedelta(days=now.isoweekday())
print(d3.strftime("%Y-%m-%d %H:%S:%M"), " ", d3.isoweekday())

# 上周一
d31 = d3 - datetime.timedelta(days=6)
print(d31.strftime("%Y-%m-%d %H:%S:%M"), " ", d31.isoweekday())

# 上个月最后一天
d4 = now - datetime.timedelta(days=now.day)
print(d3.strftime("%Y-%m-%d %H:%S:%M"))

# 上个月第一天
print(datetime.datetime(d4.year, d4.month, 1))

Python之时间和日期使用小结

11. 格式化符号

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python发送邮件接收邮件示例分享
Jan 21 Python
python中as用法实例分析
Apr 30 Python
Python中的sort()方法使用基础教程
Jan 08 Python
使用Python的package机制如何简化utils包设计详解
Dec 11 Python
django2 快速安装指南分享
Jan 05 Python
python实现数据库跨服务器迁移
Apr 12 Python
python实现随机梯度下降法
Mar 24 Python
Python打包方法Pyinstaller的使用
Oct 09 Python
Python实现投影法分割图像示例(一)
Jan 17 Python
Python unittest工作原理和使用过程解析
Feb 24 Python
pytorch读取图像数据转成opencv格式实例
Jun 02 Python
Python脚本实现Zabbix多行日志监控过程解析
Aug 26 Python
对Python Pexpect 模块的使用说明详解
Feb 14 #Python
python获取交互式ssh shell的方法
Feb 14 #Python
对python多线程SSH登录并发脚本详解
Feb 14 #Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 #Python
python 实现selenium断言和验证的方法
Feb 13 #Python
使用Python自动化破解自定义字体混淆信息的方法实例
Feb 13 #Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 #Python
You might like
PHP sprintf()函数用例解析
2011/05/18 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
PHP安全之register_globals的on和off的区别
2020/07/23 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
Jquery动态进行图片缩略的原理及实现
2013/08/13 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
python动态进度条的实现代码
2019/07/03 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
python同时替换多个字符串方法示例
2019/09/17 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
Python assert关键字原理及实例解析
2019/12/13 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
PHP中如何使用Cookie
2015/10/28 面试题
什么是数据抽象
2016/11/26 面试题
幼儿园园长自我鉴定
2013/10/22 职场文书
财务情况说明书范文
2014/05/06 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
学生实习证明范文
2014/09/28 职场文书
工人先进事迹材料
2014/12/26 职场文书
销售业务员岗位职责
2015/02/13 职场文书
毕业证明模板
2015/06/19 职场文书