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数组条件过滤filter函数使用示例
Jul 22 Python
python 获取网页编码方式实现代码
Mar 11 Python
Python正则抓取网易新闻的方法示例
Apr 21 Python
python实现名片管理系统项目
Apr 26 Python
Pandas中resample方法详解
Jul 02 Python
python实现一个点绕另一个点旋转后的坐标
Dec 04 Python
pytorch 实现删除tensor中的指定行列
Jan 13 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
获取CSDN文章内容并转换为markdown文本的python
Sep 06 Python
Python-split()函数实例用法讲解
Dec 18 Python
matplotlib之pyplot模块实现添加子图subplot的使用
Apr 25 Python
如何利用pygame实现打飞机小游戏
May 30 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
PHP 中的类
2006/10/09 PHP
php字符串截取的简单方法
2013/07/04 PHP
php自动载入类用法实例分析
2016/06/24 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
python实现百度语音识别api
2018/04/10 Python
Python中的Django基本命令实例详解
2018/07/15 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
python可视化实现代码
2019/01/15 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
iostream与iostream.h的区别
2015/01/16 面试题
软件测试工程师笔试题带答案
2015/03/27 面试题
WSDL的操作类型主要有几种
2013/07/19 面试题
旅游管理专业学生求职信
2013/09/28 职场文书
护士思想汇报
2014/01/12 职场文书
大学辅导员事迹材料
2014/02/05 职场文书
2014年防汛工作总结
2014/12/08 职场文书
Vue的生命周期一起来看看
2022/02/24 Vue.js
《帝国时代4》赛季预告 新增内容编译器可创造地图
2022/04/03 其他游戏