time

1.  Python中表示时间的方式

l  时间戳

l  格式化的时间字符串

l  元组(struct_time)共九个元素。由于Python的time模块实现主要调用C库,所以各个平台可能有所不同。

2.  UTC、时间戳、元组

l  UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。

l  时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。

l  元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。下面列出这种方式元组中的几个元素:

索引(Index)    属性(Attribute)                         值(Values)

0                       tm_year(年)                     比如2011

1                       tm_mon(月)                       1 - 12

2                       tm_mday(日)                   1 - 31

3                       tm_hour(时)                    0 - 23

4                       tm_min(分)                         0 - 59

5                       tm_sec(秒)                          0 - 61

6                       tm_wday(weekday)              0 - 6(0表示周日)

7                       tm_yday(一年中的第几天)         1 - 366

8                      tm_isdst(是否是夏令时)         默认为-1

3.  模块属性

1)      time.time()

#获取当前时间戳

2)      time.gmtime(timestamp)

#将一个时间戳转换为UTC时区(0时区)的struct_time

3)      time.localtime(timestamp)

#将一个时间戳转换为当前时区的struct_time

4)      time.ctime(timestamp)

#把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。

5)      time.asctime(struct_time)

#把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。如果没有参数,将会将time.localtime()作为参数传入。

6)      time.mktime(struct_time)

#将一个struct_time转化为时间戳

7)      time.sleep(secs)

#将线程推迟指定的时间运行。单位为秒。

8)      time.clock()

#这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。(实际上是以WIN32上QueryPerformanceCounter()为基础,它比毫秒表示更为精确)

9)      time.strftime("%a, %d %b %Y %H:%M:%S +0000", struct_time)

把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出。

10)   time.strptime("30 Nov 00", "%d %b %y")

#把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。

备注:

“%p”只有与“%I”配合使用才有效果。

文档中强调确实是0 - 61,而不是59,闰年秒占两秒(汗一个)。

当使用strptime()函数时,只有当在这年中的周数和天数被确定的时候%U和%W才会被计算。

datetime

1.  datetime模块定义了下面这几个类:

datetime.date:表示日期的类。常用的属性有year, month, day;

datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;

datetime.datetime:表示日期时间。

datetime.timedelta:表示时间间隔,即两个时间点之间的长度。

datetime.tzinfo:与时区有关的相关信息。

名称比较绕口,在实际实用中,用得比较多的是 datetime.datetime 和 datetime.timedelta ,另外两个 datetime.date 和 datetime.time 实际使用和 datetime.datetime 并无太大差别。 下面主要讲讲 datetime.datetime 的使用。使用datetime.datetime.now()可以获得当前时刻的datetime.datetime 实例。 对于一个 datetime.datetime 实例,主要会有以下属性及常用方法,看名称就能理解,应该没有太大问题:

1.     datetime.year

2.     datetime.month

3.     datetime.day

4.     datetime.hour

5.     datetime.minute

6.     datetime.second

7.     datetime.microsecond

8.     datetime.tzinfo

2.  模块属性

1)   常量

2)   date类

date对象由year年份、month月份及day日期三部分构成date(year,month,day)

a)    静态方法和字段

date.max、date.min:date对象所能表示的最大、最小日期;

date.resolution:date对象表示日期的最小单位。这里是天。

date.today():返回一个表示当前本地日期的date对象;

date.fromtimestamp(timestamp):根据给定的时间戮,返回一个date对象;

b)   方法和属性

d1 = date(2011,06,03)#date对象

d1.year、date.month、date.day:年、月、日;

d1.replace(year, month, day):生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)

d1.timetuple():返回日期对应的time.struct_time对象;

d1.weekday():返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;

d1.isoweekday():返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;

d1.isocalendar():返回格式如(year,month,day)的元组;

d1.isoformat():返回格式如'YYYY-MM-DD’的字符串;

d1.strftime(fmt):和time模块format相同。

c)    date对象中包含的方法与属性

以上方法的返回值为True\False

3)   time类

time类由hour小时、minute分钟、second秒、microsecond毫秒和tzinfo五部分组成

time([hour[, minute[, second[, microsecond[, tzinfo]]]]])

a)    静态方法和字段

time.min、time.max:time类所能表示的最小、最大时间。其中,time.min = time(0, 0, 0, 0), time.max = time(23, 59, 59, 999999);

time.resolution:时间的最小单位,这里是1微秒;

t1 = datetime.time(10,23,15)#time对象

t1.hour、t1.minute、t1.second、t1.microsecond:时、分、秒、微秒;

t1.tzinfo:时区信息;

t1.replace([ hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ):创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变);

t1.isoformat():返回型如"HH:MM:SS"格式的字符串表示;

t1.strftime(fmt):同time模块中的format;

b)   date对象中包含的方法与属性

以上方法的返回值为True\False

4)   datetime类

datetime类其实是可以看做是date类和time类的合体,其大部分的方法和属性都继承于这二个类,其数据构成也是由这二个类所有的属性所组成的:

datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])

a)    静态方法和字段

datetime.today():返回一个表示当前本地时间的datetime对象;

datetime.now([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;

datetime.utcnow():返回一个当前utc时间的datetime对象;#格林威治时间

datetime.fromtimestamp(timestamp[, tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息;

datetime.utcfromtimestamp(timestamp):根据时间戮创建一个datetime对象;

datetime.combine(date, time):根据date和time,创建一个datetime对象;

datetime.strptime(date_string, format):将格式字符串转换为datetime对象;

b)   方法和属性

dt=datetime.now()#datetime对象

dt.year、month、day、hour、minute、second、microsecond、tzinfo:

dt.date():获取date对象;

dt.time():获取time对象;

dt. replace ([ year[ , month[ , day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ] ] ]):

dt. timetuple ()

dt. utctimetuple ()

dt. toordinal ()

dt. weekday ()

dt. isocalendar ()

dt. isoformat ([ sep] )

dt. ctime ():返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));

dt. strftime (format)

5)   timedelta类

timedelta类是用来计算二个datetime对象的差值的。

此类中包含如下属性:

1、days:天数

2、microseconds:微秒数(>=0 并且 <1秒)

3、seconds:秒数(>=0 并且 <1天)

例子:

today = datetime.date.today()

today_weekday = today.isoweekday()

last_sunday = today - datetime.timedelta(days=today_weekday)

last_monday = last_sunday - datetime.timedelta(days=6)

# datetime.timedelta(days=6)这个days可以换成hours,seconds,minutes,and so on。

calendar

calendar模块,即日历模块,提供了对日期的一些操作方法,和生成日历的方法。

calendar模块中提供了三大类:

一、calendar.Calendar(firstweekday=0)

该类提供了许多生成器,如星期的生成器,某月日历生成器

二、calendar.TextCalendar(firstweekday=0)

该类提供了按月、按年生成日历字符串的方法。

三、calendar.HTMLCalendar(firstweekday=0)

类似TextCalendar,不过生成的是HTML格式日历

calendar.calendar(year,w=2,l=1,c=6)

#返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。

calendar.firstweekday( )

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

calendar.isleap(year)

#是闰年返回True,否则为false。

calendar.leapdays(y1,y2)

#返回在Y1,Y2两年之间的闰年总数。

calendar.month(year,month,w=2,l=1)

#返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。

calendar.monthcalendar(year,month)

#返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。

calendar.monthrange(year,month)

#返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。

calendar.prcal(year,w=2,l=1,c=6)

#相当于 print calendar.calendar(year,w,l,c).

calendar.prmonth(year,month,w=2,l=1)

#相当于 print calendar.calendar(year,w,l,c)。

calendar.setfirstweekday(weekday)

#设置每周的起始日期码。0(星期一)到6(星期日)。

calendar.timegm(tupletime)

#和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数)。

calendar.weekday(year,month,day)

#返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。

time、datetime、calendar的更多相关文章

  1. Mysql 日期类型 date、datetime、timestamp.

    三种:  date.datetime.timestamp. date : 格式 "YYYY-MM-DD" ,范围 "1000-00-00"到"9999 ...

  2. MySQL-时间(time、date、datetime、timestamp和year)

    情景进入 情境进入: 今天调试某查询页面,偶尔发现一个问题,刚刚插入的数据,没有正常排序显示,经过后台调试sql,发现一个问题??? 经过上面红色对比,不知道你发现问题没,Order by 只是多一个 ...

  3. time、date、datetime、timestamp和year

    在此声明mysql数据库 时间上总共有五中表示方法:它们分别是 time.date.datetime.timestamp和year. time : “hh:mm:ss”格式表示的时间值,格式显示TIM ...

  4. 面试题:能谈谈Date、Datetime、Time、Timestamp、year的区别吗?

    一. 推荐阅读 首发地址:https://mp.weixin.qq.com/s/9zKX86P4kzlKla6-NyS3EA 使用推荐阅读,有更好的阅读体验 二.准备 如果面试官问你:了解 date. ...

  5. mysql中的date、datetime、timestamp你还不知道怎么使用吗

    在后端开发中经常会碰到涉及数据库的场景,不知道屏幕前的你有这样的疑惑没有,每每在遇到时间.日期字段总是让人头疼,分不清到底是选date还是datetime,亦或是timestamp,真是抓耳挠腮啊,怎 ...

  6. day18 time、datetime、calendar、sys、os、os.path模块

    今日内容 时间模块 time模块 datetime模块 calendar模块 系统模块 sys模块 os模块 os.path模块 time模块: 在 time 模块中使用最多的方法有: time() ...

  7. Python 第五篇(上):算法、自定义模块、系统标准模块(time 、datetime 、random 、OS 、sys 、hashlib 、json和pickle)

    一:算法回顾: 冒泡算法,也叫冒泡排序,其特点如下: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应 ...

  8. (九)random、os、time、datetime、hashlib、pymysql、excel、sys、string相关模块

    1.random模块 1 import random,string 2 print(string.printable) #代表所有的 数字+字母+特殊字符 3 4 print(random.randi ...

  9. Python (time、datetime、random、os、sys、shutil)模块的使用

    ######################################################### 模块time ################################### ...

随机推荐

  1. CAD.NET二次开发 新建图层 删除图层 指定图层颜色以及线形等

    基于浩辰CAD 2019测试 功能实现 直接上代码: [CommandMethod("CreateAndAssignAlayer")] //新建图层 然后添加到图层表里 publi ...

  2. 使用C#开发windows服务定时发消息到钉钉群_群组简单消息

    前言:本提醒服务,是由C#语言开发的,主要由windows服务项目和winform项目组成,运行服务可实现功能:向钉钉自定义机器人群组里,定时,定次,推送多个自定义消息内容,并实现主要功能的日志记录. ...

  3. 项目开发过程中什么是开发环境、测试环境、生产环境、UAT环境、仿真环境?

    项目开发过程中什么是开发环境.测试环境.生产环境.UAT环境.仿真环境? 最近在公司项目开发过程中总用到测试环境,生产环境和UAT环境等,然而我对环境什么的并不是很理解它的意思,一直处于开发阶段,出于 ...

  4. 九九乘法表-for循环

    1.打印在左上角 #直角在左上方 for i in range(9,0,-1): for j in range(1,10): if j <= i: print("{}*{}={}&qu ...

  5. 外观模式 门面模式 Facade 结构型 设计模式(十三)

    外观模式(FACADE) 又称为门面模式   意图 为子系统中的一组接口提供一个一致的界面 Facade模式定义了一个高层接口,这一接口使得这一子系统更加易于使用. 意图解析 随着项目的持续发展,系统 ...

  6. 洛谷P3366 【模板】最小生成树(Boruvka算法)

    题意 题目链接 Sol 自己yy着写了一下Boruvka算法. 算法思想很简单,就是每次贪心的用两个联通块之间最小的边去合并. 复杂度\(O(n \log n)\),然鹅没有Kruskal跑的快,但是 ...

  7. Ant Design按需加载

    不eject情况下配置antd按需加载 1.安装 react-app-rewired yarn add react-app-rewired 2. 项目根目录下新建 config-overrides.j ...

  8. SuperMap iObject入门开发系列之一组件式GIS开发平台介绍

    本文是一位好友“炀炀”授权给我来发表的,介绍都是他的研究成果,在此,非常感谢.平台介绍:SuperMap iObjects Java/.NET 是面向GIS应用系统开发者的组件式GIS开发平台,具有强 ...

  9. MyBatis Generator 生成器把其他数据库的同名表生成下来的问题

    [问题] 使用MyBatis Generator生成器时,发现Mapper文件中出现字段与连接数据库不符,经过查找发现该表是其他数据库的同名表的字段. [解决问题] 在构造文件中,这里是generat ...

  10. 高通MSM8998 ABL的调试

    高通在MSM8998上引入了UEFI,用来代替LK(Little Kernel).高通UEFI由XBL和ABL两部分组成.XBL负责芯片驱动及充电等核心应用功能.ABL包括芯片无关的应用如fastbo ...