日期和时间可以说是一种独特的数据类型,既不同于数字,也不同于字符串,而且有自己独特的运算规则。在不同的编程语言中,都会将日期和时间与常规的数据类型独立开来,单独进行操作。在python的内置模块中,时间与日期相关的有以下3个datatime

time

calendar在实际开发中,处理日期和时间主要有以下3种场景获取当前的日期和时间

格式化日期和时间

计算两个时间的差值

在进行日期和时间操作前,我们必须先理解以下几个常用的术语格林威治标准时间,英文缩写为GMT是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间

时间起点,国际标准的时间起点为1970年1月1日00:00:00

时间戳,当前时间与时间起点之间经过的秒数

时区,不同国家,地区之间存在时差,为了方便换算,规定格林尼治天文台为中时区,依次为零点,每15经度定义一个时区,每个时区时差为1小时,全球共划分为24个时区

夏令时,英文缩写为DST,是一种人为规定的时间制度,在夏季将时间调快1小时,以达到早睡早起,节约能源的目的,在秋冬季的某一天再将时间调整回来。世界范围内有一百多个国家实行夏令时制度,每个国家的夏令时起止时间不同,我国从1992年之后,不再实行夏令时

下面来看每个模块的常见用法1. time

该模块主要用来获取当前时间,并进行格式化,基本用法如下>>> import time# 返回时间戳>>> time.time()1589853649.8406465# 以struc_time元组的形式返回当前时间>>> time.localtime()time.struct_time(tm_year=2020, tm_mon=5, tm_mday=19, tm_hour=9, tm_min=6, tm_sec=56, tm_wday=1, tm_yday=140, tm_isdst=0)# 以struc_time元组的形式返回当前时间>>> time.gmtime()time.struct_time(tm_year=2020, tm_mon=5, tm_mday=19, tm_hour=2, tm_min=0, tm_sec=8, tm_wday=1, tm_yday=140, tm_isdst=0)

struc_time元组包含了9个元素,每个元素的含义如下tm_year, 表示年份,四位数

tm_mon, 表示月份,1到12之间的一个数字

tm_mday,表示每月的第几天,1到31之间的一个数字

tm_hour, 表示小时,0到23之间的一个数字

tm_min, 表示分钟数,0到59之间的一个数字

tm_sec, 表示秒数,0到61之间第一个数字

tm_wday,表示星期,0到6之间的一个数字,0表示星期一,依次类推

tm_yaday,表示一年中的第几日,1到366之家的一个数字

tm_isdst, 是否为夏令时,1表示是,0表示否,-1表示未知

struc_time元组可以轻松访问其中的内容,用法如下>>> time.localtime().tm_year2020>>> time.localtime().tm_mon5>>> time.localtime().tm_mday19>>> time.localtime().tm_hour10>>> time.localtime().tm_min50>>> time.localtime().tm_sec18

日期的格式化和字符串格式化类似,内置了格式化标识符,通过strftime函数来进行格式化,每个标识符的作用如下# %a表示星期的缩写>>> time.strftime('%a', time.localtime())'Tue'# %A表示星期的全称>>> time.strftime('%A', time.localtime())'Tuesday'# %b表示月份的缩写>>> time.strftime('%b', time.localtime())'May'# %B表示月份的全称>>> time.strftime('%B', time.localtime())'May'# %c表示>>> time.strftime('%c', time.localtime())'Tue May 19 09:33:57 2020'# %d表示每月的第几天>>> time.strftime('%d', time.localtime())'19'# %H为十进制表示的小时, 24小时制,范围为00-23>>> time.strftime('%H', time.localtime())'09'# %I为十进制表示的小时,12小时制,范围为01-12>>> time.strftime('%I', time.localtime())'09'# %j表示一年中的第几天>>> time.strftime('%j', time.localtime())'140'# %m表示十进制的月份,范围为01-12>>> time.strftime('%m', time.localtime())'05'# %M表示十进制的分钟,范围为00到59>>> time.strftime('%M', time.localtime())'34'# %p表示上午或者下午,值为AM或PM>>> time.strftime('%p', time.localtime())'AM'# %S表示秒数,范围00到61>>> time.strftime('%S', time.localtime())'36'# %U表示一年中的周数,范围为00-53>>> time.strftime('%U', time.localtime())'20'# %w表示一周中的第几天,范围0-6,0表示星期日,以此类推>>> time.strftime('%w', time.localtime())'2'# %W表示一年中的周数,范围为00-53>>> time.strftime('%W', time.localtime())'20'# %x以本地规则表示日期>>> time.strftime('%x', time.localtime())'05/19/20'# %X以本地规则表示时间>>> time.strftime('%X', time.localtime())'09:34:51'# %y表示没有世纪的年份,即4位数年份的后两位>>> time.strftime('%y', time.localtime())'20'# %Y表示完整年份>>> time.strftime('%Y', time.localtime())'2020'# %z表示时区偏移>>> time.strftime('%z', time.localtime())'+0800'# %Z 表示时区名称>>> time.strftime('%Z', time.localtime())'CST'# %% 表示一个百分号字面值>>> time.strftime('%%', time.localtime())'%'

如果只是简单的格式化当前日期,内置的函数acstime和ctime是最简单的方式,当然也可以用多种格式化标识符进行组合,灵活的格式化日期,用法如下>>> time.asctime()'Tue May 19 10:52:51 2020'>>> time.ctime()'Tue May 19 09:59:11 2020'>>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())'2020-05-19 09:50:50'2. datetimedatetime是日期和时间处理的基本模块,当然也支持获取当前日期和格式化,其更独特的功能是进行时间的运算,比如计算两个日期之间差了几天,用法如下>>> import datetime# 获取当前日期>>> a = datetime.date.today()>>> datetime.date.today()datetime.date(2020, 5, 19)# 获取年,月,日>>> a.year2020>>> a.month5>>> a.day19# 格式化>>> a.isoformat()'2020-05-19'# 获取当前的日期和时间>>> datetime.datetime.now()datetime.datetime(2020, 5, 19, 10, 56, 50, 225742)>>> a = datetime.datetime.now()# 获取年,月,日,时,分,秒>>> a.year2020>>> a.month5>>> a.day19>>> a.hour10>>> a.minute56>>> a.second53# 计算前一天的时间>>> datetime.datetime.now() - datetime.timedelta(days = 1)datetime.datetime(2020, 5, 18, 11, 5, 40, 612206)# 计算1小时后的时间>>> datetime.datetime.now() + datetime.timedelta(seconds = 3600)datetime.datetime(2020, 5, 19, 12, 8, 3, 839407)3.  calendar

该模块用于处理日历信息,内置了月份和星期的列表,可以当做一个常量来使用,用法如下# 月份的列表>>>[i for i in calendar.month_name]['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']# 星期的列表>>>[i for i in calendar.day_name]['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

除此之外,也提供了一些年份相关的函数# 判断一个年份是否为闰年>>> calendar.isleap(1997)False>>> calendar.isleap(2020)True# 返回两个年份间闰年的个数>>> calendar.leapdays(1997, 2020)5

对于日期和时间而言,最常用的还是time和datetime两个模块,掌握常用的日期获取和格式化操作,就足够应付大多数的开发需求了。·end·

python日期时间_python日期和时间的操作方法汇总相关推荐

  1. python显示时间_python日期时间处理总结

    用了一段时间的django开发web项目,也是第一次用python来开发项目,所有有许多相关的知识点需要总结,本文所介绍的python的日期时间处理就是最近用到的,希望对各位有所帮助,也同时作为自己的 ...

  2. python中当地时间_Python 日期和时间

    Python日期和时间 阅读本文需要4分钟 Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日 ...

  3. python日期时间_Python日期时间

    python日期时间 Python日期时间 (Python datetime) In this post, we will study about how to use the python date ...

  4. python mysql日期输出格式_Python/Shell/MySQL时间获取与格式转换

    一.说明 时间的获取及时间各格式间的转换是比较常用的操作,但一是多种语言经常容易弄混,二是同一种语言同一个功能可能有不同的实现函数,导致每次处理时间经常要百度所以来记录一下. 另外个人真不喜欢同样功能 ...

  5. python日期和时间_Python日期和时间

    datetime是Python处理日期和时间的标准库. 获取当前日期和时间 我们先看如何获取当前日期和时间: 1 2 3 4 5 6>>>from datetime import d ...

  6. python对外发布的时间_Python如何进行时间处理

    我们会经常遇到对时间的处理,用python来进行时间处理简直不要太方便了,这一期就给大家介绍一下python的时间处理! 用python进行时间处理主要会用到time,calendar,datetim ...

  7. python比较日期大小_Python日期的处理——datetime模块

    本文作者:胡   婧 文字编辑:杨慧琳 技术总编:张学人 好消息!!!爬虫俱乐部将于2019年7月5日至7月8日在武汉举行首期Python编程技术定制培训.本次培训采用理论与案例相结合的方式,旨在帮助 ...

  8. python获取网络时间_python获取网络时间和本地时间

    今天我们来看一下如何用python获取网络时间和本地时间,直接上代码吧,代码中都有注释. python获取网络时间获取网络时间 def getBeijinTime(): ""&qu ...

  9. python数据格式简介_Python中数据类型时间的介绍(附代码)

    本篇文章给大家带来的内容是关于Python中数据类型时间的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.什么是时间数据类型 Python中表示时间类型的数据结构为 ...

最新文章

  1. c语言数组中的字母可以相等吗,C语言数组比较
  2. 主机电源全是黑线怎么短接_汽车胎压监测即将成为强制标准,听听老司机怎么说...
  3. spark的源码编译
  4. [Swift]LeetCode268. 缺失数字 | Missing Number
  5. mybais 之parameterType =list
  6. idea js检查太卡_IntelliJ IDEA抑制、禁用与启用检查
  7. TightVNC 2.6.4 发布
  8. 数字信号处理实验matlab版答案,数字信号处理习题答案及matlab实验详解.pdf
  9. 服务器cpu哪个型号超频,服务器CPU也超频,AMD霄龙性能暴涨1.5倍-控制器/处理器-与非网...
  10. 2016网易研发题目
  11. html制作我和我的家乡,《我和我的家乡》怎么参与投资?投资流程是什么?
  12. C++中异常处理中的构造和析构
  13. kaldi_源码笔记 thchs-30_data_prep
  14. 【烈日炎炎战后端】JAVA多线程(11.2万字)
  15. 读Java核心技术36讲有感——谈谈对Java的理解,谈谈Exception和Error
  16. linux的s权限和t权限
  17. 空间权重矩阵与相关性检验(Stata)
  18. 厉害了!看嘴型竟然就能识别发音
  19. 【转】台湾教授-如何阅读科研论文
  20. 操作系统实验之掌握基本SHELL命令(一)

热门文章

  1. html自动播放avi视频,kanavi根本没法跟小天比,doinb的夸奖引质疑,私下这么看不上jdg...
  2. 从软件实施到客户成功的三级跳
  3. 总市值,流通股本,总金额有什么关系?大盘指数为什么不是多有股票指数之和
  4. dede image.class.php,织梦CMS中图片处理类
  5. Python:在小型项目中使用JSON数据库的利器——TinyDB
  6. 点分治 【BZOJ3784】树上路径
  7. NLP【05】pytorch实现glove词向量(附代码详解)
  8. 狂吃不胖11种食物化解油腻
  9. coteditor mac版文本编辑器
  10. java 正则 排除_Java正则表达式:排除单词/字符串