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月)。

最新文章

  1. Ms sql将首字母大写
  2. C# == equals 本质理解
  3. js模拟快捷键操作表单
  4. NTP时间服务器配置与解析
  5. Java注解全面解析
  6. ubuntu12.04安装QQ2013
  7. Delphi 为TClientdataset定义结果集,并增加记录
  8. Android 开源项目android-open-project解析之(三) ScrollView,TimeView,TipView,FlipView
  9. nodejs应用mysql(纯属翻译)
  10. chart.js制作折线图
  11. linux上安装Oracle 11g R2 标准版 64位
  12. android 网络通信框架volly
  13. Idea安装lombok插件【转载】
  14. python脚本执行报错整理
  15. pandas设置值、更改值
  16. pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)
  17. Android之Activity生命周期详解
  18. 分形之二叉树(Binary Tree)
  19. 撤销正在审核的app
  20. vue-学习笔记(更新中...)

热门文章

  1. ajax验证用户名是否存在
  2. ubuntu 安装vm-tool
  3. Java 单例(Singleton)模式
  4. Django常见问题
  5. 2.5 Cesium视域分析的实现
  6. Android RecyclerView初探
  7. 关于写作那些事之利用 js 统计各大博客阅读量
  8. Html5 Canvas介绍
  9. 评估指标【交叉验证&amp;ROC曲线】
  10. Windows 组策略的生效规则