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数据结构之Array用法实例
Oct 09 Python
Python中使用PIL库实现图片高斯模糊实例
Feb 08 Python
PyQt5每天必学之滑块控件QSlider
Apr 20 Python
在Pandas中给多层索引降级的方法
Nov 16 Python
通过python爬虫赚钱的方法
Jan 29 Python
使用Python进行防病毒免杀解析
Dec 13 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
Apr 13 Python
详解Flask前后端分离项目案例
Jul 24 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
python实现图片,视频人脸识别(dlib版)
Nov 18 Python
python中二分查找法的实现方法
Dec 06 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
Jan 12 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/12/31 PHP
20个PHP常用类库小结
2011/09/11 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
捕获关闭窗口的脚本
2009/01/10 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
xmlplus组件设计系列之树(Tree)(9)
2017/05/02 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
python复制与引用用法分析
2015/04/08 Python
Python的动态重新封装的教程
2015/04/11 Python
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
python多进程重复加载的解决方式
2019/12/13 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
介绍一下gcc特性
2012/01/20 面试题
店长助理岗位职责
2013/12/13 职场文书
电视购物广告词
2014/03/19 职场文书
委托书格式要求
2015/01/28 职场文书
2015年基建工作总结范文
2015/05/23 职场文书