一、time模块

1、time.time()

import time

# 返回当前时间的时间戳,语法:time.time()
timestamp=time.time()
print(timestamp)

        代码执行结果:

1640656106.2590778

2、time.localtime(timestamp)

import time

# 接收时间戳,返回当地时间下的时间元组,语法:time.localtime(timestamp)
timestamp=time.time()
tupletime=time.localtime(timestamp)
print(tupletime)

        代码执行结果:

time.struct_time(tm_year=2021, tm_mon=12, tm_mday=28, tm_hour=9, tm_min=49, tm_sec=34, tm_wday=1, tm_yday=362, tm_isdst=0)

        参数说明:
            tm_year     2008
            tm_mon      1 到 12
            tm_mday        1 到 31
            tm_hour        0 到 23
            tm_min        0 到 59
            tm_sec        0 到 61 (60或61 是闰秒)
            tm_wday        0到6 (0是周一)
            tm_yday        一年中的第几天,1 到 366
            tm_isdst    是否为夏令时,值有:1(夏令时)、0(不是夏令时)、-1(未知),默认 -1
 

3、time.sleep(secs)

import time

# 推迟线程的运行,语法:time.sleep(secs)
print("one")
time.sleep(3)   # 3s后执行下一条程序
print("two")

        代码执行结果:

one
two

        先打印出“one”,1s后再打印“two”。

4、time.strftime(fmt,tupletime)

import time

# 接受时间元组,格式化输出时间,语法:time.strftime(fmt,tupletime)
format_time=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
print(format_time)

        代码执行结果:

2021-12-28 09:57:00

5、time.strptime(format_time,fmt)

import time

# 将格式化的时间解析为时间元组,可以理解为time.strftime()的逆运算,语法:time.strptime(format_time,fmt)
tupletime=time.strptime("2021-12-28 09:59:17","%Y-%m-%d %H:%M:%S")
print(tupletime)

        代码执行结果:

time.struct_time(tm_year=2021, tm_mon=12, tm_mday=28, tm_hour=9, tm_min=59, tm_sec=17, tm_wday=1, tm_yday=362, tm_isdst=-1)

二、calendar模块

1、calendar.calendar(year)

import calendar

# 打印指定年份的日历,语法:calendar.calendar(year)
print(calendar.calendar(2021))

        代码执行结果:

                                  2021

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
             1  2  3       1  2  3  4  5  6  7       1  2  3  4  5  6  7
 4  5  6  7  8  9 10       8  9 10 11 12 13 14       8  9 10 11 12 13 14
11 12 13 14 15 16 17      15 16 17 18 19 20 21      15 16 17 18 19 20 21
18 19 20 21 22 23 24      22 23 24 25 26 27 28      22 23 24 25 26 27 28
25 26 27 28 29 30 31                                29 30 31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                      1  2          1  2  3  4  5  6
 5  6  7  8  9 10 11       3  4  5  6  7  8  9       7  8  9 10 11 12 13
12 13 14 15 16 17 18      10 11 12 13 14 15 16      14 15 16 17 18 19 20
19 20 21 22 23 24 25      17 18 19 20 21 22 23      21 22 23 24 25 26 27
26 27 28 29 30            24 25 26 27 28 29 30      28 29 30
                          31

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
          1  2  3  4                         1             1  2  3  4  5
 5  6  7  8  9 10 11       2  3  4  5  6  7  8       6  7  8  9 10 11 12
12 13 14 15 16 17 18       9 10 11 12 13 14 15      13 14 15 16 17 18 19
19 20 21 22 23 24 25      16 17 18 19 20 21 22      20 21 22 23 24 25 26
26 27 28 29 30 31         23 24 25 26 27 28 29      27 28 29 30
                          30 31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
             1  2  3       1  2  3  4  5  6  7             1  2  3  4  5
 4  5  6  7  8  9 10       8  9 10 11 12 13 14       6  7  8  9 10 11 12
11 12 13 14 15 16 17      15 16 17 18 19 20 21      13 14 15 16 17 18 19
18 19 20 21 22 23 24      22 23 24 25 26 27 28      20 21 22 23 24 25 26
25 26 27 28 29 30 31      29 30                     27 28 29 30 31

2、calendar.month(year,month)

import calendar

# 打印指定的某一年某一月的日历,语法:calendar.month(year,month)
print(calendar.month(2021,12))

        代码执行结果:

   December 2021
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

3、calendar.isleap(year)

import calendar

# 判断指定年份是否是闰年,是闰年返回True,不是闰年返回False,语法:calendar.isleap(year)
print(calendar.isleap(2020))

        代码执行结果:

True

4、calendar.leapdays(y1,y2)

import calendar

# 返回年份区间内闰年的总数,语法:calendar.leapdays(y1,y2)
print(calendar.leapdays(2000,2020))

        代码执行结果:

5

5、calendar.monthcalendar(year, month)

import calendar

# 返回单层嵌套列表,每个子列表包含一个星期的日期。
# Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始,语法:calendar.monthcalendar(year, month)
print(calendar.monthcalendar(2021,12))

        代码执行结果:

[[0, 0, 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, 0, 0]]

6、calendar.monthrange(year,month)

import calendar

# 返回两个整数,第一个是该月的星期几,第二个是该月有几天。星期几是从0(星期一)到 6(星期日),语法:calendar.monthrange(year,month)
print(calendar.monthrange(2021,12))

        代码执行结果:

(2, 31)

7、calendar.weekday(year,month,day)

import calendar

# 返回给定日期的日期码0(星期一)~6(星期日),语法:calendar.weekday(year,month,day)
print(calendar.weekday(2021,12,28))

        代码执行结果:

1

        执行结果为1,表示2021-12-28是星期二。

三、datetime模块

1、datetime.date(year,month,day)

import datetime

# 返回year-month-day格式的日期,语法:datetime.date(year,month,day)
print(datetime.date(2021,12,28))

        代码执行结果:

2021-12-28

2、datetime.date.today()

import datetime

# 获取当天日期,语法:datetime.date.today()
print(datetime.date.today())

        代码执行结果:

2021-12-28

3、datetime.date(year,month,day).timetuple()

import datetime

# 返回对应的time.struct_time对象(类似于time模块的time.localtime()),语法:datetime.date(year,month,day).timetuple()
today=datetime.date(2021,12,27)
print(today.timetuple())

        代码执行结果:

time.struct_time(tm_year=2021, tm_mon=12, tm_mday=27, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=361, tm_isdst=-1)

4、datetime.date(year,month,day).weekday()

import datetime

# 返回 0 ~ 6 表示星期几(星期一是 0,依此类推),语法:datetime.date(year,month,day).weekday()
today=datetime.date(2021,12,28)
print(today.weekday())

        代码执行结果:

1

        执行结果为1,表示2021-12-28是星期二。

5、datetime.date(year,month,day).isoweekday()

import datetime

# 返回 1 ~ 7 表示星期几(星期一是1, 依此类推),语法:datetime.date(year,month,day).isoweekday()
today=datetime.date(2021,12,28)
print(today.isoweekday())

        代码执行结果:

2

        执行结果为2,表示2021-12-28是星期二。

6、datetime.date(year,month,day).isocalendar()

import datetime

# 返回一个三元组格式 (year, month, day),语法:datetime.date(year,month,day).isocalendar()
today=datetime.date(2021,12,28)
print(today.isocalendar())

        代码执行结果:

(2021, 52, 2)

        (2021, 52, 2)的含义是:2021年第52个星期的第2天。

7、datetime.date(year,month,day).ctime()

import datetime

# 输出ctime样式的日期格式,语法:datetime.date(year,month,day).ctime()
today=datetime.date(2021,12,27)
print(today.ctime())

        代码执行结果:

Tue Dec 28 00:00:00 2021

8、datetime.datetime.now()

import datetime

# 返回当前本地日期时间,语法:datetime.datetime.now()
print(datetime.datetime.now())

        代码执行结果:

2021-12-28 10:35:21.629215

9、datetime.datetime.now().utctimetuple()

import datetime

# 获取UTC时间元组,语法:datetime.datetime.now().utctimetuple()
now=datetime.datetime.now()
print(now.utctimetuple())

        代码执行结果:

time.struct_time(tm_year=2021, tm_mon=12, tm_mday=28, tm_hour=10, tm_min=36, tm_sec=58, tm_wday=1, tm_yday=362, tm_isdst=0)

四、补充计算年龄的函数

1、计算两个年份之间的年份差

import datetime

current_year=datetime.datetime.now().year
born_year=int(input("请输入您的出生年份:"))
print("您今年{}岁...".format(current_year.__sub__(born_year)))

        代码执行结果:

请输入您的出生年份:1997
您今年24岁...

2、计算年龄,并计算距离下次过生日还有多长时间

import datetime

y = int(input("请输入您的出生年份:"))
m = int(input("请输入您的出生月份:"))
d = int(input("请输入您的出生日期:"))
birthday = datetime.date(y,m,d)
today = datetime.datetime.now().date()
age = (today-birthday).days//365
print("您今年{}岁...".format(age))
next_birthday = datetime.date(datetime.datetime.now().year+1,m,d)
sub_day = (next_birthday-today).days
month = sub_day//30
days = sub_day%30
print("距您下次过生日大约还有{}个月零{}天,共{}天!!!".format(month,days,sub_day))

        代码执行结果:

请输入您的出生年份:1997
请输入您的出生月份:5
请输入您的出生日期:7
24
距您下次过生日大约还有4个月零10天,共130天!!!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐