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 相关文章推荐
Python通过正则表达式选取callback的方法
Jul 18 Python
Python 自动刷博客浏览量实例代码
Jun 14 Python
Python中int()函数的用法浅析
Oct 17 Python
pycharm设置注释颜色的方法
May 23 Python
Python实现将多个空格换为一个空格.md的方法
Dec 20 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
python gensim使用word2vec词向量处理中文语料的方法
Jul 05 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 Python
Python用SSH连接到网络设备
Feb 18 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 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
header()函数使用说明
2006/11/23 PHP
测试您的 PHP 水平的题目
2007/05/30 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
Python getopt模块处理命令行选项实例
2014/05/13 Python
Python入门_浅谈逻辑判断与运算符
2017/05/16 Python
python reduce 函数使用详解
2017/12/05 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
详解Python是如何实现issubclass的
2019/07/24 Python
python 内置函数汇总详解
2019/09/16 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
python取均匀不重复的随机数方式
2019/11/27 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
2019年.net常见面试问题
2012/02/12 面试题
应用化学专业职业生涯规划书
2013/12/31 职场文书
工程材料采购方案
2014/05/18 职场文书
生物科学专业自荐书
2014/06/20 职场文书
法学院毕业生求职信
2014/06/25 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python