Python中提供了时间相关的内置模块,我们主要用的是:time模块、datetime模块和calendar模块

⽇期格式化的标准:

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m ⽉份(01-12)
%d ⽉内中的⼀天(0-31)
%H 24⼩时制⼩时数(0-23)
%I 12⼩时制⼩时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的⽉份名称
%B 本地完整的⽉份名称
%c 本地相应的⽇期表示和时间表示
%j 年内的⼀天(001-366)
%p 本地A.M.或P.M.的等价符
%U ⼀年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W ⼀年中的星期数(00-53)星期⼀为星期的开始
%x 本地相应的⽇期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

一、时间相关的术语

  • UTC time Coordinated Universal Time,世界协调时,又称 格林尼治天文时间、世界标准时间。与UTC time对应的是各个时区的local time,东N区的时间比UTC时间早N个小时,因此UTC time + N小时 即为东N区的本地时间;而西N区时间比UTC时间晚N个小时,即 UTC time - N小时 即为西N区的本地时间; 中国在东8区,因此比UTC时间早8小时,可以以UTC+8进行表示。

  • epoch time 表示时间开始的起点;它是一个特定的时间,不同平台上这个时间点的值不太相同,对于Unix而言,epoch time为 1970-01-01 00:00:00 UTC。

  • timestamp(时间戳) 也称为Unix时间 或 POSIX时间;它是一种时间表示方式,表示从格林尼治时间1970年1月1日0时0分0秒开始到现在所经过的毫秒数,其值为float类型。 但是有些编程语言的相关方法返回的是秒数(Python就是这样),这个需要看方法的文档说明。需要说明的是时间戳是个差值,其值与时区无关。

一、time模块

  1、时间戳(timestamp):时间戳使用的是从1970年01月01日 00点00分00秒到现在一共经过了多少秒。。。使用的是float来表示。

import time
# time.time() 表示时间戳
s=time.time()#1542167172.0260832 数据库中存储采用的是这种时间

  2、格式化时间(strftime):这个时间主要可以把时间进行任意的格式化输出。

import time
s2=time.strftime("%Y-%m-%d %H:%M:%S") #2018-11-14 19:27:47

  3、结构化时间(struct_time):这个时间主要可以把时间分类划分。

time.struct_time(tm_year=2018, tm_mon=11, tm_mday=14, tm_hour=12, tm_min=3, tm_sec=9, tm_wday=2, tm_yday=318, tm_isdst=0)

  4、三种时间之间的转换

  时间戳 -> 结构化时间:time.localtime( 时间戳)、time.gmtime( 时间戳)

import time
s=time.localtime(18888888) #时区问题 gmtime :格林尼治时间
# time.struct_time(tm_year=1970, tm_mon=8, tm_mday=7,
# tm_hour=22, tm_min=54, tm_sec=48, tm_wday=4, tm_yday=219, tm_isdst=0)

  结构化时间 -> 格式化时间:time.strftime(时间格式,结构化时间)

import time
s=time.localtime()
s2=time.strftime("%Y-%m-%d %H:%M:%S",s)
print(s2) #2018-11-14 19:47:30

  格式化时间 ->结构化时间:time.strptime(格式化时间,相应的格式字符串)

import time
s1="1995-3-15 03:29:37"
struct_s1=time.strptime(s1,"%Y-%m-%d %H:%M:%S")
print(struct_s1)
#time.struct_time(tm_year=1995, tm_mon=3, tm_mday=15, #tm_hour=3, tm_min=29, tm_sec=37, tm_wday=2, tm_yday=74, #tm_isdst=-1)

  结构化时间 -> 时间戳:time.mktime(结构化时间)

import time
s=time.localtime()
s2=time.mktime(s)
print(s2)#1542196252.0

  5、时间差的计算  

计算时间差
# 假定给两个时间
import time
s1="2017-9-20 03:29:37"
s2="2018-3-15 12:3:55"
# # 格式化时间 -> 结构化时间
struct_s1=time.strptime(s1,"%Y-%m-%d %H:%M:%S")
struct_s2=time.strptime(s2,"%Y-%m-%d %H:%M:%S")
# 结构化时间 -> 时间戳
s1_chou=time.mktime(struct_s1)
s2_chou=time.mktime(struct_s2)
time_cha=abs(s2_chou-s1_chou)
# 时间戳-> 结构化时间
new_time=time.gmtime(time_cha)
# time.struct_time(tm_year=1996, tm_mon=7, tm_mday=29, tm_hour=17, tm_min=1, tm_sec=19, tm_wday=0, tm_yday=211, tm_isdst=0)
y_cha=new_time.tm_year-1970
m_cha=new_time.tm_mon-1
d_cha=new_time.tm_mday-1
H_cha=new_time.tm_hour
M_cha=new_time.tm_min
S_cha=new_time.tm_sec
print("两个时间相隔 %s 年 %s 月 %s 日 %s 时 %s 分 %s 秒"% (y_cha,m_cha,d_cha,H_cha,M_cha,S_cha)) import time
true_time=time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S'))
time_now=time.mktime(time.strptime('2017-09-12 11:00:00','%Y-%m-%d %H:%M:%S'))
dif_time=time_now-true_time
struct_time=time.gmtime(dif_time)
print(struct_time)
print('过去了%d年%d⽉%d天%d⼩时%d分钟%d秒'%(struct_time.tm_year-1970,struct_time.tm_mon-1,struct_time.tm_mday-1,struct_time.tm_hour,struct_time.tm_min,struct_time.tm_sec))
#

  利用时间戳计算时、分、秒

hours=dif_time//3600
minute=dif_time%3600//60
secend=dif_time%3600%60 print("过去了 %s 小时 %s 分钟 %s秒"%(hours,minute,secend))

二、datetime模块

  • date 类(记住这一个)
date类有三个参数,datetime.date(year,month,day),返回year-month-day

  需要的时候再看这里

1.datetime.date.ctime(),返回格式如 Sun Apr 16 00:00:00 2017

2.datetime.date.fromtimestamp(timestamp),根据给定的时间戮,返回一个date对象;datetime.date.today()作用相同

3.datetime.date.isocalendar():返回格式如(year,month,day)的元组,(2017, 15, 6)

4.datetime.date.isoformat():返回格式如YYYY-MM-DD

5.datetime.date.isoweekday():返回给定日期的星期(0-6),星期一=0,星期日=6

6.datetime.date.replace(year,month,day):替换给定日期,但不改变原日期

7.datetime.date.strftime(format):把日期时间按照给定的format进行格式化。

8.datetime.date.timetuple():返回日期对应的time.struct_time对象

  time.struct_time(tm_year=2017, tm_mon=4, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=105, tm_isdst=-1)

9.datetime.date.weekday():返回日期的星期
  • time类 (记住这一个)
datetime.time(hour,minute,second,microsecond,tzoninfo),返回08:29:30

  有需求再看

1.datetime.time.replace()

2.datetime.time.strftime(format):按照format格式返回时间

3.datetime.time.tzname():返回时区名字

4.datetime.time.utcoffset():返回时区的时间偏移量

三、calendar模块

  1、calendar.calendar(year,w=2,l=1,c=6) 返回某年的日历,每日宽度w字符,每行21*w+8+2*c,i表示星期

  2、calendar.firstweekday( )  返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。

  3、calendar.isleap(year) 判断是否为润年

  4、calendar.leapdays(y1,y2)  返回[y1, y2)润年总数

  5、calendar.month(year,month,w=2,l=1) 返回某年某月的的日历

  6、calendar.monthcalendar(year,month) 返回某年某月日历,以列表形式显示

  7、calendar.setfirstweekday(weekday)   设置每周的起始日期码。0(星期一)到6(星期日)。

  8、calendar.timegm(tupletime)  和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍

(1970纪元后经过的浮点秒数)。

  9、calendar.weekday(year,mouth,day) 返回星期码,0表示星期1

python 时间模块(time ,datetime,calendar)的更多相关文章

  1. Python3之时间模块time & datetime & calendar

    一. 简介 python 提供很多方式处理日期与时间,转换日期格式是一个常见的功能. 时间元组:很多python函数用一个元组装起来的9组数字处理时间. python中时间日期格式化符号: %y 两位 ...

  2. Day 16 : Python 时间模块[time,]datetime[]及第三方模块的下载与安装

    在进行python程序开发时,除了可以使用python内置的标准模块外,还右许多第三方模块使用,可以在python官网找到. 在使用第三方模块时,需要下载并安装此模块,然后就可以使用标准模块一样导入并 ...

  3. Python时间模块datetime用法

    时间模块datetime是python内置模块,datetime是Python处理日期和时间的标准库. 1,导入时间模块 from datetime import datetime 2,实例 from ...

  4. 浅谈Python时间模块

    浅谈Python时间模块 今天简单总结了一下Python处理时间和日期方面的模块,主要就是datetime.time.calendar三个模块的使用.希望这篇文章对于学习Python的朋友们有所帮助 ...

  5. (转)python time模块和datetime模块详解

    python time模块和datetime模块详解 原文:http://www.cnblogs.com/tkqasn/p/6001134.html 一.time模块 time模块中时间表现的格式主要 ...

  6. python时间处理之datetime

    python时间处理之datetime 标签: pythondateimportstringc 2012-09-12 23:21 20910人阅读 评论(0) 收藏 举报  分类: Python系列( ...

  7. python 时间模块time,datetime详细介绍

    模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具.换言之,Python 默认情况下提供了一些可用的东西,但是这些默认情况下提供的还远远不能满足编程实践 ...

  8. Python模块 - time,datetime,calendar

    time模块 localtime 当前时间的struct_time形式 >>> time.localtime() time.struct_time(tm_year=2015, tm_ ...

  9. python 时间模块time,datetime

    模块(module)是 Python 中非常重要的东西,你可以把它理解为 Python 的扩展工具.换言之,Python 默认情况下提供了一些可用的东西,但是这些默认情况下提供的还远远不能满足编程实践 ...

随机推荐

  1. oracle listener.ora文件配置

    # listener.ora Network Configuration File: /oracleDB/product//db_1/network/admin/listener.ora # Gene ...

  2. 如何理解php的依赖注入

    之前写过关于php依赖注入的文章..最近发现有的朋友对这个还是理解模糊,在这里我想写个简单的实例帮助朋友们理解下...传统的思路是应用程序用到一个A类,就会创建A类并调用A类的方法,假如这个方法内需要 ...

  3. 支持MySelf

    编程思路分享,BUG上报,主推Java Web方向与软件架构设计,不定期推出系列针对性基础教程,项目均放置于GitHub,个人运营精力有限,感谢支持. 交流群:628793702 个人技术公众,欢迎关 ...

  4. mybatis插件机制

    目录 mybatis插件机制 主要 类/接口 和 方法 mybatis插件机制实现 mybatis插件机制 mybatis的插件机制使用动态代理实现,不了解的朋友请先了解代理模式和动态代理:插件本质是 ...

  5. 5.枚举和注解_EJ

    第30条: 用enum代替int常量 枚举类型是指由一组固定的常量组成合法值得类型.例如一年中的季节,太阳系中的行星或一副牌中的花色.在开发中我们经常在类使用static final来定义一个int常 ...

  6. angular 时间戳转换(星期过滤器)

    {{(value.time+'000' | date:'yyyy-MM-dd HH:mm:ss') : '/'}} .filter('getWeek', function() { return fun ...

  7. 李飞飞确认将离职!谷歌云AI总帅换人,卡耐基·梅隆老教授接棒

    https://mp.weixin.qq.com/s/i1uwZALu1BcOq0jAMvPdBw 看点:李飞飞正式回归斯坦福,新任谷歌云AI总帅还是个教授,不过这次是全职. 智东西9月11日凌晨消息 ...

  8. application.properties多环境配置文件、jar包外部配置文件、配置项加密、程序中配置使用

    一.简介 spring boot项目application.properties文件存放及使用介绍 二.方法一多环境配置文件 我们一般都会有多个应用环境,开发环境.测试环境.生产环境,各个环境的配置会 ...

  9. Android为TV端助力 事件分发机制

    android事件分发机制,给控件设置ontouch监听事件,当ontouch返回true时,他就不会走onTouchEvent方法,要想走onTouchEvent方法只需要返回ontouch返回fa ...

  10. Echarts纵坐标显示为整数小数

    chart.DoubleDeckBarChart = function (getIDParam, Legend, xAxisData, seriesName1, seriesName2, series ...