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的循环体中使用else语句的方法
Mar 30 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
Apr 15 Python
python的变量与赋值详细分析
Nov 08 Python
纯python实现机器学习之kNN算法示例
Mar 01 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
Jul 23 Python
python做接口测试的必要性
Nov 20 Python
python使用配置文件过程详解
Dec 28 Python
Python+Appium实现自动化测试的使用步骤
Mar 24 Python
使用python实现微信小程序自动签到功能
Apr 27 Python
在django中实现choices字段获取对应字段值
Jul 12 Python
Python 高级库15 个让新手爱不释手(推荐)
May 15 Python
Python面向对象编程之类的概念
Nov 01 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 多行多列显示
2009/08/15 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
基于wordpress主题制作的具体实现步骤
2013/05/10 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
javascript中UMD规范的代码推演
2018/08/29 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
Python线程详解
2015/06/24 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
空中乘务员岗位职责
2014/03/08 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
信息管理专业自荐书
2014/06/05 职场文书
保密工作目标责任书
2014/07/28 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
民事答辩状范本
2015/05/21 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
职位证明模板
2015/06/23 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python