网络编程
位置:首页>> 网络编程>> Python编程>> python中时间模块的基本使用教程

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

作者:white_study  发布时间:2021-05-15 21:24:43 

标签:python,时间,模块

前言:

在开发中经常会与时间打交道,如:获取事件戳,时间戳的格式化等,这里简要记录一下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

喜欢点个赞!

来源:https://www.jianshu.com/p/84b726309baf

0
投稿

猜你喜欢

  • 用DIV+CSS可以作出很多不同形状的角形;以下我只写了几个;CSS没有优化;是为了让大家看得更清一些;以下是一些小三角的形状:这是第一个小
  • 所有的计算机程序都可以大致分为两类:脚本型(单次运行)和连续运行型(直到用户主动退出)。脚本型:脚本型的程序包括最早的批处理文件以及使用Py
  • Smptp类定义:smtplib.SMTP(host[,port[,local_hostname[,,timeout]]]),作为SMTP的
  • 最近在研究网页的切片算法,很可能很多人不知道什么是切片算法,其实这是一种面向搜索引擎的网页分块、切片的原理,目前随着工作的深入,逐渐碰到了各
  • 纯粹的截取字符串其实比较简单,用一个Left就搞定,但一个是全英文标题,一个是全中文标题,或中文混合排在一起,长短不一就很明显了,要考虑到中
  • 首先.还是看效果.实现对文本域textarea中文字字数的限制。然后.米了...看文件.里面写的很清楚了.下面这个是单独的效果..提示用al
  • 混编的含义有两种,一种是在python里面写C一种是C里面写python本文主要是进行简化,方便使用。###################
  • 概要 “SQL Server 桌面引擎”(也叫 MSDE 2000)没有自己的用户界面,因为它主要设计为在后台运行。用户通过 MSDE 20
  • 如下所示:from pymongo import MongoClient#建立和数据库系统的连接,指定host及port参数client =
  • 本文整理了3种鼠标经过图片,图片边框加粗或改变颜色的方法,希望大家喜欢。下面3中只是提供了一个方法,具体的鼠标经过图片的样式,你自己可以修改
  • asp十进制转二进制;二进制转十进制;二进制转十六进制;十六进制转二进制;八进制转二进制'二进制转八进制;八进制转十进制;十六进制转
  • 阅读上一篇:javascript面向对象编程(二) [Interface,Class.implement 接口及实现]接口规定了一些方法,如
  • 本文以实例详解了python的迭代器与生成器,具体如下所示:1. 迭代器概述: 迭代器是访问集合元素的一种方式。迭代器对象从集合的
  • 所谓“评论”不是必须得有文本框,用户录入提交数据才算,广义上的评论包括用户的任何“表态”,典型如打分。我接触电子商务时间并不长,最早应该是0
  • 本文实例讲述了PHP实现二维数组中的查找算法。分享给大家供大家参考,具体如下:方法1:silu从左下角最后一行的第一个元素开始,遍历。如果小
  • Python下实现定时任务的方式有很多种方式。下面介绍几种循环sleep:这是一种最简单的方式,在循环里放入要执行的任务,然后sleep一段
  • 基于python+OpenCV的车牌号码识别,供大家参考,具体内容如下车牌识别行业已具备一定的市场规模,在电子警察、公路卡口、停车场、商业管
  • pytorch中的权值初始化官方论坛对weight-initilzation的讨论torch.nn.Module.apply(fn)torc
  • 1、环境PyCharmPython 3.6pip安装的依赖包包括:requests 2.25.0、urllib3 1.26.2、docx 0
  • 花几分钟时间欣赏一下我们写好的Web应用程序,然后我们再来搞点小破坏。 我们故意在 views.py 文件中引入一项 Python 错误,注
手机版 网络编程 asp之家 www.aspxhome.com