python常用模块-时间

时间主要分为3个模块:

  time模块,datetime模块,calendar模块

1、time模块 和 datetime模块

import time, datetime
#获取当前时间,并把它转换为字符串
# 方法一:
>>> time
<module 'time' (built-in)>
>>> type(time)
<class 'module'>
>>> time.strftime('%Y-%m-%d %H:%M:%S')
'2019-06-26 23:59:41'
# 方法二:
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2019, 6, 27, 0, 1, 8, 464662)
>>> datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
'2019-06-27 00:04:26'

# 字符串转时间
datetime.datetime.strptime('2018-6-10 13:59:50','%Y-%m-%d %H:%M:%S')   #字符串转换为时间
time.strptime('2019-7-25 13:42:33', '%Y-%m-%d %H:%M:%S')

# 时间转字符串 .strftime()
>>> datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
'2019-06-06 00:04:26'
>>> b = time.strptime('2019-08-05', '%Y-%m-%d') 
>>> time.strftime('%Y-%m-%d', b)
'2019-08-05'

#获取当前时间戳,以秒为单位
>>> int(time.time()) # 这是获取的系统时间(也叫墙上时间)
1561565381
>>> time.clock() # 这是获取的CPU运行时间(统计某一程序或者函数的执行时间最为合适)
3e-07
>>> t1 = time.clock()
>>> t2 = time.clock()
>>> t2-t1
11.4080048

# 时间戳转为时间 
# 方法一  datetime.datetime.fromtimestamp()
>>> datetime.datetime.fromtimestamp(int(time.time()))
datetime.datetime(2019, 6, 27, 0, 12, 11)
>>> datetime.datetime.fromtimestamp(int(time.time())).strftime('%Y-%m-%d %H:%M:%S') # 转为字符串
'2019-06-06 00:17:47
# 方法二:time.localtime()
>>> time.localtime(int(time.time()))
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=27, tm_hour=0, tm_min=13, tm_sec=55, tm_wday=3, tm_yday=178, tm_isdst=0)
>>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(time.time()))) # 转为字符串
'2019-06-27 00:19:32' 

>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=11, tm_mday=27, tm_hour=21, tm_min=39, tm_sec=11, tm_wday=2, tm_yday=331, tm_isdst=0)
>>> time.localtime()[0] #
2019
>>> time.localtime()[1] #
11
>>> time.localtime()[2] #
27
>>> time.localtime()[3] #
21
>>> time.localtime()[4] #
41
>>> time.localtime()[5] #
30
>>> time.localtime()[6] # 星期几 (结果+1)
2
>>> time.localtime()[7] # 一年中的第几天
331
>>> time.localtime()[8] # 是否夏令时
0

now = time.localtime()
time.strftime('%Y-%m-%d %H:%M:%S', now)
'2019-11-29 09:52:59'
#星期的简写 
time.strftime('%a', now)
'Fri'
#星期的全写
time.strftime('%A', now)
'Friday'
#月份的简写
time.strftime('%b', now)
'Nov'
#月份的全写
time.strftime('%B', now)
'November'
#得到日期时间的字符串
time.strftime('%c', now)
'Fri Nov 29 09:52:59 2019'
#日期字符串 
time.strftime('%x', now)
'11/29/19'
#时间字符串
time.strftime('%X', now)
'09:52:59'
# 今天在这周是星期几
time.strftime('%w', now)
'5'
#今天是今年的第几天
time.strftime('%j', now)
'333'
#这周是今年的第几周
time.strftime('%U', now)
'47'
# 生产一个日期,年月日 时分秒
t = time.localtime()
str(t[0])+""+str(t[1])+""+str(t[2])+""+" " + str(t[3])+""+ str(t[4])+""+ str(t[5])+""
'2019年11月27日 21时51分35秒'
     
万能拼接:" %Y-%m-%d %H:%M:%S " 最好用这种方法拼接,因为这样拼接后的日期长度的固定的,便于截取
%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)

import datetime
# date类
>>> datetime.date.max # 最大日期
datetime.date(9999, 12, 31)
>>> datetime.date.min # 最小日期
datetime.date(1, 1, 1)
>>> print(datetime.date.today()) # 当前日期
2020-03-18
# 时间戳转换时间
>>> now = time.time()
>>> print(datetime.date.fromtimestamp(now))
2020-03-18
# 时间转换为星期几
>>> now2 = datetime.date.today()
>>> datetime.date.weekday(now2)
2

# 时间计算 
# 加天数和减天数
>>> today = datetime.date.today()
>>> print(today)
2020-03-18
>>> print (today + datetime.timedelta(days = 10))
2020-03-28
>>> print (today - datetime.timedelta(days = 10))
2020-03-08
# 两个时间之间的加减
>>> time1 = datetime.date.today() # 时间1
>>> print(time1)
2020-03-18
>>> time2 = time1.replace(day=20) # 时间2(替换生产新的时间)
>>> print(time2)
2020-03-20
>>> print(time2 - time1)
2 days, 0:00:00
# 时间日期大小比较
>>> time1 = datetime.date.today() # 时间1
>>> print(time1)
2020-03-18
>>> time2 = time1.replace(day=20) # 时间2(替换生产新的时间)
>>> print(time2)
2020-03-20
>>> time1<time2
True

2、calendar模块

# calendar模块,就是日历模块,提供了一些操作日期、生成日历的方法 

>>> for i in calendar.day_name: # 获取全写星期
...     print(i, end=" ")
...
Monday Tuesday Wednesday Thursday Friday Saturday Sunday

>>> for i in calendar.day_abbr: # 获取简写星期
...     print(i,end=" ")
...
Mon Tue Wed Thu Fri Sat Sun

>>> for i in calendar.month_name: # 获取全写的月份
...     print(i, end=" ")
...
 January February March April May June July August September October November December
    
>>> for i in calendar.month_abbr: # 获取月份的简写
...     print(i, end=" ")
...
 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    
>>> calendar.isleap(2015) # 判断是否是闰年
False

>>> print (calendar.month(2015, 3, 1, 1)) # 获取月份的日历, 参数为:年、月、横向间距、纵向间距
     March 2015
Mo Tu We Th Fr Sa Su
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

>>> print (calendar.calendar(2015, 3, 1, 1)) # 获取年的日历,参数:年、一行排3个月份、横向间距、纵向间距
                                         2015

          January                      February                      March
Mon Tue Wed Thu Fri Sat Sun  Mon Tue Wed Thu Fri Sat Sun  Mon Tue Wed Thu Fri Sat Sun
              1   2   3   4                            1                            1
  5   6   7   8   9  10  11    2   3   4   5   6   7   8    2   3   4   5   6   7   8
 12  13  14  15  16  17  18    9  10  11  12  13  14  15    9  10  11  12  13  14  15
 19  20  21  22  23  24  25   16  17  18  19  20  21  22   16  17  18  19  20  21  22
 26  27  28  29  30  31       23  24  25  26  27  28       23  24  25  26  27  28  29
                                                           30  31

           April                         May                          June
Mon Tue Wed Thu Fri Sat Sun  Mon Tue Wed Thu Fri Sat Sun  Mon Tue Wed Thu Fri Sat Sun
          1   2   3   4   5                    1   2   3    1   2   3   4   5   6   7
  6   7   8   9  10  11  12    4   5   6   7   8   9  10    8   9  10  11  12  13  14
 13  14  15  16  17  18  19   11  12  13  14  15  16  17   15  16  17  18  19  20  21
 20  21  22  23  24  25  26   18  19  20  21  22  23  24   22  23  24  25  26  27  28
 27  28  29  30               25  26  27  28  29  30  31   29  30

            July                        August                     September
Mon Tue Wed Thu Fri Sat Sun  Mon Tue Wed Thu Fri Sat Sun  Mon Tue Wed Thu Fri Sat Sun
          1   2   3   4   5                        1   2        1   2   3   4   5   6
  6   7   8   9  10  11  12    3   4   5   6   7   8   9    7   8   9  10  11  12  13
 13  14  15  16  17  18  19   10  11  12  13  14  15  16   14  15  16  17  18  19  20
 20  21  22  23  24  25  26   17  18  19  20  21  22  23   21  22  23  24  25  26  27
 27  28  29  30  31           24  25  26  27  28  29  30   28  29  30
                              31

          October                      November                     December
Mon Tue Wed Thu Fri Sat Sun  Mon Tue Wed Thu Fri Sat Sun  Mon Tue Wed Thu Fri Sat Sun
              1   2   3   4                            1        1   2   3   4   5   6
  5   6   7   8   9  10  11    2   3   4   5   6   7   8    7   8   9  10  11  12  13
 12  13  14  15  16  17  18    9  10  11  12  13  14  15   14  15  16  17  18  19  20
 19  20  21  22  23  24  25   16  17  18  19  20  21  22   21  22  23  24  25  26  27
 26  27  28  29  30  31       23  24  25  26  27  28  29   28  29  30  31
                              30


myCal = calendar.HTMLCalendar(calendar.SUNDAY) # 生成html的格式
print (myCal.formatmonth(2016, 7)) 
with open('calendar.html','w') as fp: 
    fp.write(myCal.formatmonth(2016, 7))

猜你喜欢

转载自www.cnblogs.com/su-sir/p/12516142.html