python时间模块的使用 white_study

Souleigh ✨ 等级 430 0 0
前言:

在开发中经常会与时间打交道,如:获取事件戳,时间戳的格式化等,这里简要记录一下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时间模块的使用 white_study
前言: 在开发中经常会与时间打交道,如:获取事件戳,时间戳的格式化等,这里简要记录一下python操作时间的方法。 python中常见的处理时间的模块: time:处理时间的模块,如获取时间戳,格式化日期等 datetime:date和time的结合体,处理日期和时间 calendar:日历相关的模块,如:处理年历/月历 tim
Python的环境搭建和下载
Python是一个跨平台、可移植的编程语言,因此可在windows、Linux和Mac OS X系统中安装使用。 安装完成后,你会得到Python解释器环境,可以通过终端输入python命令查看本地是否已经按照python以及python版本。这里有一点需要注意的是,如果没有将python的安装目录添加到环境变量中,会报错(python不是内部命令或外部命
python中的异常处理
异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 异常种类   在python中不同的异常可以用不同的类型(python
python装饰器详解
你会Python嘛? 我会! 那你给我讲下Python装饰器吧! Python装饰器啊?我没用过哎 以上是我一个哥们面试时候发生的真实对白。 \分割线
python 获取今天、昨天、明天的时间时间戳
今天 最近24小时 最近一周 最近一月 if __name__ '__main__': import datetime import time 获取今天日期 print("获取今天日期") today datetime.date.today() print(today) 201909
原来Python绘图也可以这么漂亮,这次真的是学习到了!
(https://imghelloworld.osscnbeijing.aliyuncs.com/8830803f033eeed85783e9058cf08968.png) 作者:朱小五 来源:快学Python 👆人生苦短,快学Python! 最近看了一篇文章《一个牛逼的Python 可视化库:PyG2Plot》,可惜只是简单介
知乎从Python转为Go,是不是代表Go比Python好?
众所周知,知乎早在几年前就将推荐系统从 Python 转为了 Go。于是乎,一部分人就说 Go 比 Python 好,Go 和 Python 两大社区的相关开发人员为此也争论过不少,似乎,谁也没完全说服谁。 知乎从Python转为Go,是不是代表Go比Python好?我认为,各有优点,谁也取代不了谁,会长期共存! “由 Python 语言转向 Go 语言
Python编程基础(快速入门必看
Python编程基础一、Python语言基本语法 Python是一
python文件的第一行 #!/usr/bin/python3 是什么意思?
python文件的第一行代码通常在脚本语言的第一行会看到: !/usr/bin/env python或 !/usr/bin/python 首先要确定的一点是它不是注释。这两句话的目的都是指出你的python文件用什么可执行程序去运行它。1. !/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释
Python初学者必备书籍《Python入门经典》高清PDF版|百度网盘免费下载|Python初学者,自学Python必读
提取码:1028以及前文提到的学习路线图内容简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python可以用于很多的领域,从科学计算到游戏开发。《Python入门经典》是面向Python初学者的学习指南,详细介绍了Python编程基础,以及一些高级概念,如面向对象编程。全书分为24章。第1章介绍了Python的背景和安装方法。第2章
全网最全python学习路线图,让学习不迷路
学习Python有一段时间了,最近也是在不断的整理Python相关的基础知识和学习一些新的知识,想来分享给大家。我刚开始接触Python时,和大多数初学者一样不知道从那里开始学习python,我也在网上找了许多python相关的资料来学习,但是资料多也不见得就好,因为不知道从哪里开始下手,走了许多弯路。后面我就整理了一套对初学者来说学习python能很快上手
浅析常用的Python Web的几大框架
在各种语言平台中,python涌现的web框架恐怕是最多的,是一个百花齐放的世界,各种microframework、framework不可胜数;猜想原因应该是在python中构造框架十分简单,使得轮子不断被发明。所 以在Python社区总有关于Python框架孰优孰劣的话题。下面就给大家介绍一下python的几大框架: Django Django 应该是最出
盘点一款Python二级考试模拟软件,带你轻松过关二级Python考试
大家好,我是Python进阶者。今天给大家讲的这个软件,主要是想让大家通过这个软件能将自己的Python基础进一步提高。一、前言相信有些小伙伴学习Python有一段时日,但是又不知道自己的Python基础学的如何,这个时候就需要一款神器来检测一下自己的Python基础了。要想检测自己的Python功力最直观的方法当然是做题了,至于做什么题了我们就不得而知了,
一学就会的 Python 时间转化总结(超全)
作者:Peter 来源:Python编程时光在生活和工作中,我们每个人每天都在和时间打交道: 早上什么时候起床? 地铁几分钟来一趟? 中午什么时候开始午休? 明天是星期几? 距离上次买衣服已经2个月呢? 领导让我给代码加上一个定时任务的功能,怎么办? 不同的情况会遇到不同的时间问题:具体
Excel中的xls、xlsx、xlsm混合文件,看我用Python如何统一处理......
引言Python语言,近几年在办公自动化这一领域来说,真的超级火爆!用它做批量处理确实比VBA要方便很多。前面的文章,我们已经讲述了如何将doc文件转换为docx文件,还没有观看的朋友直接戳此链接:](http://mp.weixin.qq.com/s?bizMzkwNDE5NTc0Ng&mid2247514428&idx1&sn1f8720112f6a88