python中时间模块的基本使用教程


Posted in Python onMay 14, 2019

前言:

在开发中经常会与时间打交道,如:获取事件戳,时间戳的格式化等,这里简要记录一下python操作时间的方法。

python中常见的处理时间的模块:

  • time:处理时间的模块,如获取时间戳,格式化日期等
  • datetime:date和time的结合体,处理日期和时间
  • calendar:日历相关的模块,如:处理年历/月历

time模块介绍

说明:time模块主要讲解如下内容:

1.时间戳  --> 时间元组格式(time.struct_time)   -->  日期字符串

2.日期字符串 -->  时间元组格式(time.struct_time)  --> 时间戳

3.获取当前时间的分钟/秒

4.获取整分钟/整小时时间戳

1.时间戳  --> 时间元组格式(time.struct_time)   -->  日期字符串

时间戳  --> 时间元组格式

time.localtime(timestamp)  # 参数timestamp为秒级时间戳

例子:

import time

time_tuple = time.localtime(time.time())
print time_tuple # time.struct_time(tm_year=2019, tm_mon=1, tm_mday=30, tm_hour=11, tm_min=29, tm_sec=33, tm_wday=2, tm_yday=30, tm_isdst=0)

时间元组 --> 日期字符串

time.strftime(format, p_tuple=None):format:格式化的日期样式;p_tuple:时间元组

例子:

time_format = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)
print time_format # 2019-01-30 11:48:07

封装成方法:

def timestamp_format(timestamp):
 """
 :brief 时间戳格式化
 :param timestamp: 时间戳
 :return: 格式化后的日期
 """
 return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))

2.日期字符串 --> 时间元组格式(time.struct_time) --> 时间戳

日期字符串 -->  时间元组

time.strptime(string, format) # string:日期字符串,format:该日期字符串对应的格式化格式

例子:

import time

time_str_to_tuple = time.strptime("2019-01-30 11:48:07", "%Y-%m-%d %H:%M:%S")
print time_str_to_tuple # time.struct_time(tm_year=2019, tm_mon=1, tm_mday=30, tm_hour=11, tm_min=48, tm_sec=7, tm_wday=2, tm_yday=30, tm_isdst=-1)

时间元组  --> 时间戳

time.mktime(p_tuple):p_tuple:时间元组

例子:

time_tuple_to_timestamp = int(time.mktime(time_str_to_tuple))
print time_tuple_to_timestamp # 结果:1548820087

封装成方法

def time_str_to_timestamp(date_str, format):
 """
 :brief 将字符串日期转换为时间戳
 :param date_str: 日期字符串,如:2019-01-30 11:48:07
 :param format: 日期字符串对应的格式化格式,如:%Y-%m-%d %H:%M:%S
 :return: 时间戳
 """
 return int(time.mktime(time.strptime(date_str, format)))

3.获取当前时间的分钟/秒

获取当前时间戳

timestamp = int(time.time())

获取当前时间的秒

seconds = timestamp % 60
print "seconds:{}".format(seconds)

获取当前时间的分钟

minute = (timestamp - seconds) % (60 * 60)
print "minute:{}".format(minute / 60)

4.获取整分钟/整小时时间戳

思路:

先除以对应的进制值取整,得到舍弃余数部分的整数,然后再乘以对应的进制值

one_minute = 60 # 一分钟
one_hour = one_minute * 60 # 一小时

whole_minute = int(timestamp / one_minute) * one_minute
whole_hour = int(timestamp / one_hour) * one_hour

datetime模块介绍

datetime模块中常见的类:

  • datetime.date:处理日期
  • datetime.time:处理时间
  • datetime.datetime:处理日期和时间
  • datetime.timedelta:处理时间差

说明:datetime模块主要讲解如下内容

1.时间戳  --> datetime时间格式   -->  日期字符串

2.日期字符串 -->  datetime时间格式  --> 时间元组格式(time.struct_time) --> 时间戳

3.时间差的使用,根据当前时间获取前N天的时间

1.时间戳  --> datetime时间格式   -->  日期字符串

时间戳  --> datetime时间格式

datetime.datetime.fromtimestamp(timestamp) 参数timestamp:时间戳

例子:

import time, datetime

datetime_type = datetime.datetime.fromtimestamp(time.time())
print type(datetime_type) # <type 'datetime.datetime'>

datetime时间格式   -->  日期字符串

datetime.datetime.strftime(format) format:日期字符串对应的格式化格式

例子:

datetime_format = datetime_type.strftime("%Y/%m/%d %H:%M:%S")
print datetime_format # 2019/01/30 16:44:01

2.日期字符串 -->  datetime时间格式  --> 时间元组格式(time.struct_time) --> 时间戳

日期字符串 -->  datetime时间格式

datetime.datetime.strptime(date_str, format) date_str:字符串日期    format:日期字符串对应的格式化格式

例子:

datetime_type = datetime.datetime.strptime('2019/01/30 16:44:01', '%Y/%m/%d %H:%M:%S')
print type(datetime_type) # <type 'datetime.datetime'>
# print datetime_type.timestamp()
print time.mktime(datetime_type.timetuple())

datetime时间格式  --> 时间元组格式(time.struct_time) --> 时间戳

datetime.datetime.timetuple(): datetime转换为时间元组

例子:

datetime_type_to_timestamp = int(time.mktime(datetime_type.timetuple()))
print datetime_type_to_timestamp

3.时间差的使用,根据当前时间获取前N天的时间

datetime.timedelta(days, seconds, microseconds, milliseconds, minutes, hours, weeks)

参数说明:

1.days:天

2.seconds:秒

3.microseconds:毫秒      1秒 = 10^3 毫秒

4.milliseconds:微秒      1秒 = 10^6 微秒

5.minutes,分钟

6.hours:小时

7.weeks:星期    1weeks = 7days

例子:

day_timedelta = datetime.timedelta(days=1) # 获取1天的时间值
forward_datetime = datetime.datetime.today() - day_timedelta # 获取前一天的datetime值
print forward_datetime

calendar模块介绍

说明:

这里介绍一下使用month(year, month)方法打印出某年某月下的月历时间

例子:

import calendar
cal = calendar.month(2019, 1) # 打印出2019年1月的月历
print cal

喜欢点个赞!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python3实现从指定路径查找文件的方法
May 22 Python
python下os模块强大的重命名方法renames详解
Mar 07 Python
使用python验证代理ip是否可用的实现方法
Jul 25 Python
对Python信号处理模块signal详解
Jan 09 Python
Python多线程原理与用法实例剖析
Jan 22 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
python使用pandas处理excel文件转为csv文件的方法示例
Jul 18 Python
python实现二分类的卡方分箱示例
Nov 22 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
基于pandas中expand的作用详解
Dec 17 Python
keras中的卷积层&amp;池化层的用法
May 22 Python
windows10在visual studio2019下配置使用openCV4.3.0
Jul 14 Python
使用Python正则表达式操作文本数据的方法
May 14 #Python
Django如何防止定时任务并发浅析
May 14 #Python
python3 pygame实现接小球游戏
May 14 #Python
Django 多环境配置详解
May 14 #Python
python仿evething的文件搜索器实例代码
May 13 #Python
python爬虫租房信息在地图上显示的方法
May 13 #Python
详解如何设置Python环境变量?
May 13 #Python
You might like
用PHP实现图象锐化代码
2007/06/14 PHP
简单说说PHP优化那些事(经验分享)
2014/11/27 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
PHP的PDO连接讲解
2019/01/24 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
python实现ip代理池功能示例
2019/07/05 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
python中类与对象之间的关系详解
2020/12/16 Python
css3实现可滑动跳转的分页插件示例
2014/05/08 HTML / CSS
GWT都有什么特性
2016/12/02 面试题
养殖人员的创业计划书范文
2013/12/26 职场文书
澳大利亚商务邀请函
2014/01/17 职场文书
元旦晚会邀请函
2014/02/01 职场文书
应届生自荐信
2014/06/30 职场文书
假释思想汇报范文
2014/10/11 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
会计工作岗位职责
2015/02/03 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
python 实现图片特效处理
2022/04/03 Python
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android