当前位置: 代码迷 >> 综合 >> python-时间模块(time、datetime、calendar)
  详细解决方案

python-时间模块(time、datetime、calendar)

热度:74   发布时间:2023-11-11 03:44:23.0

1.time模块

import time
# 获取当前时间的时间戳,以s为单位
timestamp = time.time()
print(timestamp, type(timestamp))
# 输出1583127227.7372458 <class 'float'># 将时间戳转换为UTC时间
g = time.gmtime(timestamp)
print(g)
# 输出 time.struct_time(tm_year=2020, tm_mon=3, tm_mday=2, tm_hour=5, tm_min=33, tm_sec=47, tm_wday=0, tm_yday=62, tm_isdst=0)# 将时间戳转换成本地时间
l = time.localtime(timestamp)
print(l)
# 输出 time.struct_time(tm_year=2020, tm_mon=3, tm_mday=2, tm_hour=13, tm_min=33, tm_sec=47, tm_wday=0, tm_yday=62, tm_isdst=0)# 将UTC时间转换成时间戳
timestamp2 = time.mktime(g)
print(timestamp2)
# 输出 1583098427.0# 将本地时间转换成时间戳
timestamp3 = time.mktime(l)
print(timestamp3)
# 输出 1583127227.0# 将特定时间转换成时间戳
timestamp4 = time.mktime((2020, 3, 2, 13, 20, 47, 0, 62, 0))
# 参数解释: 2020年3月2日13点20分47秒,0代表星期一,是今年的第62天,0代表夏令时
print(timestamp4)
# 输出 1583126447.0# 将时间戳可视化
timestamp5 = time.ctime(timestamp4)
print(timestamp5)
# 输出  Mon Mar  2 13:20:47 2020
# 将时间元组转换成时间字符串
s = time.strftime("%Y:%m:%d %H:%M:%S", l)
print(s)  # 输出 2020:03:02 13:44:25
# 将时间字符串转换成时间元组
p = time.strptime("2020-3-2 13:20:45","%Y-%m-%d %H:%M:%S")
print(p)
# 输出 time.struct_time(tm_year=2020, tm_mon=3, tm_mday=2, tm_hour=13, tm_min=20, tm_sec=45, tm_wday=0, tm_yday=62, tm_isdst=-1)# 使程序进入休眠状态 5秒
print(time.time())  # 输出1583128091.2465198
time.sleep(5)
print(time.time())  # 输出1583128096.24725

2.datatime模块

import datetime
# 获取当前时间
currentTime = datetime.datetime.now()
print(currentTime, type(currentTime))  # 输出 2020-03-02 13:52:35.584804 <class 'datetime.datetime'># 将指定时间转换成时间字符串
timeStr = currentTime.strftime('%Y-%m-%d')
print(timeStr, type(timeStr))  # 输出 2020-03-02 <class 'str'># 根据时间元组获取时间
currentTime1 = datetime.datetime(2020, 3, 2, 13, 52, 35, 584804)
print(currentTime1, type(currentTime1))  # 输出 2020-03-02 13:52:35.584804 <class 'datetime.datetime'># 把时间字符串转换成时间
currentTime2 = datetime.datetime.strptime(timeStr, '%Y-%m-%d')
print(currentTime2, type(currentTime2))  # 输出 2020-03-02 00:00:00 <class 'datetime.datetime'>

3.calendar

import calendar
# 获取指定年和月日历形式
print(calendar.month(2020, 3))
'''输出:March 2020
Mo Tu We Th Fr Sa Su12  3  4  5  6  7  89 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
'''
# 二维列表形式展现
print(calendar.monthcalendar(2020, 3))
# 输出 [[0, 0, 0, 0, 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, 0, 0, 0]]
# 年份区间段里, 有几个闰年
print(calendar.leapdays(2000, 2020))  # 输出 5# 指定月份第一天是周几,一共有多少天
print(calendar.monthrange(2020, 3))  # 输出 (6, 31)  6:表示周日  因为程序是从0开始计算的# 判断指定日期是星期几
print(calendar.weekday(2020, 3, 2))  # 输出0   说明是星期一# 查看一年的日历
print(calendar.calendar(2020))
'''输出2020January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1  2  3  4  5                      1  2                         16  7  8  9 10 11 12       3  4  5  6  7  8  9       2  3  4  5  6  7  8
13 14 15 16 17 18 19      10 11 12 13 14 15 16       9 10 11 12 13 14 15
20 21 22 23 24 25 26      17 18 19 20 21 22 23      16 17 18 19 20 21 22
27 28 29 30 31            24 25 26 27 28 29         23 24 25 26 27 28 2930 31April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1  2  3  4  5                   1  2  3       1  2  3  4  5  6  76  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 30July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1  2  3  4  5                      1  2          1  2  3  4  5  66  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 3031October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su1  2  3  4                         1          1  2  3  4  5  65  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 3130
'''

  相关解决方案