Python日期时间模块

1.日期时间模块

  • datetime:日期
  • time:时间
  • calendar:日历
  • 时间间隔是以秒为单位
  • 每个时间戳都以自从1970.1.1经历了多长时间计算的
  • 时间戳:当前时间距离1970.1.1的秒数

2.time时间模块

  • UTC:格林威治天文时间,世界标准时间,中国UTC+8
  • DST:夏令时
    在这里插入图片描述
import time

# 获取当前时间的时间戳
T = time.time()
print(T)                  # 时间的第一种表示形式,时间戳:1582527576.3493447

# 将上述时间戳 → 时间元组
g = time.gmtime(T)
print(g)
'''
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=24, tm_hour=7, tm_min=14, tm_sec=54, tm_wday=0, tm_yday=55, tm_isdst=0)
'''

# 将时间戳 → 时间元组(本地时间)
l = time.localtime(T)
print(l)
'''
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=24, tm_hour=15, tm_min=16, tm_sec=50, tm_wday=0, tm_yday=55, tm_isdst=0)
'''

# 将时间元组 → 时间戳
c = time.mktime(l)
print(c)               # 输出:1582528788.

c1 = time.mktime((2020,2,24,14,16,50,0,55,0))
print(c1)              # 输出:1582525010.0

# 将时间戳 → 字符串
c2 = time.ctime(T)
print(c2)              # 输出:Mon Feb 24 15:21:38 2020

# 将时间元组 → 格式化字符串
# 注意:必须严格按照格式化形式书写字符串【严格区分大小写】
s = time.strftime("%Y-%m-%d %H:%M:%S",l)
print(s)                # 输出:2020-02-24 15:23:59

# (7)可视化时间(定制) → 时间元祖
# time.strptime(时间字符串,时间格式)
print(time.strptime('2018-9-30 11:32:23', '%Y-%m-%d %H:%M:%S'))


# 休眠【暂停】
# 参数的单位为秒
time.sleep(5)          # 程序休眠5S

2.2 练习:假如我有一个时间字符串,然后向得到这个字符串所对应时间3天之后得时间

import time
# 2017.5.7
time1 = "2017-5-7"

# 将时间  → 时间元组
p1 = time.strptime(time1, '%Y-%m-%d')

# 时间元组  → 时间戳
t1 = time.mktime(p1)
t3 = t1 + 3 *24 * 3600

# 时间戳  → 格式化时间
f = time.strftime("%Y.%m.%d",time.localtime(t3))
print(f)          # 输出:2017.05.10

3.datetime日期模块

  • datetime比time更加高级,对time进行封装
import datetime

# 获取当前是加你
d1 = datetime.datetime.now()
print(d1)                           # 输出:2020-02-24 16:00:20.697714

# 获取指定时间
d2 = datetime.datetime(2020,2,24,16,0,32,3623)
print(d2)                           # 输出:2020-02-24 16:00:32.003623

# 将指定时间转换为字符串
d4 = d1.strftime("%Y-%m-%d")
print(d4)                           # 输出:2020-02-24
print(type(d4))                     # 输出:<class 'str'>

d5 = datetime.datetime.strptime(d4,"%Y-%m-%d")
print(d5)                          # 输出:2020-02-24 00:00:00

# 两个时间详见,可以得到时间间隔
d6 = datetime.datetime(2018,4,2,10,56,00,3623)
d7 = datetime.datetime(2018,4,5,10,56,32,3623)
d8 = d7 - d6
print(d8)                           # 输出:3 days, 0:00:32
print(d8.days)                      # 输出:3
print(d8.seconds)                   # 输出:32 整天之外得秒数

4.timedelta

  • datetime.timedelta对象代表两个时间之间的时间差,两个date或datetime对象相减就可以返回一个timedalta对象
  • timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
import datetime

t1 = datetime.datetime.now()
t2 = datetime.timedelta(days=1)
result = t1 + t2                 # 获取一天后的时间
print(result)                    # 输出:2020-02-25 16:19:52.314417
result = t1 - t2                 # 获取前一天的时间
print(result)                    # 输出:2020-02-23 16:19:52.314417
print(t2.total_seconds())        # 获取总秒数86400.0

5.calendar日历模块

  • 主要用于获取日历相关信息``
import calendar

# 直接返回指定年和月的万年历表示形式
print(calendar.month(2020,2))
'''
输出:
   February 2020
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
'''

# 返回万年历的二维列表表示形式
print(calendar.monthcalendar(2020,2))
'''
输出:
[[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, 0]]
'''

# 直接返回指定年份的万年历表示形式
print(calendar.calendar(2020))
'''
输出:
                                  2020

      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  4  5                      1  2                         1
 6  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 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  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
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  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
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  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
'''

# 判断是否为闰年
print(calendar.isleap(2020))              # 输出:True
print(calendar.leapdays(2000,2020))       #5

# 返回指定月的weekday的第一天和这个月的所有的天数
print(calendar.monthrange(2020,2))
'''
输出:(5, 29) 表示当月开始第一天为星期五,这个月有29天
'''

# 当前日期表示的星期数
print(calendar.weekday(2020,2,2))           # 输出6
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值