python 时间格式,时间加减

import datetime

# 时间格式转换
## 字符串格式转为时间格式
a = '2022-08-01 14:32:47'
b = datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%S")
print(b, type(b))
## 时间格式转为字符串格式
c = datetime.datetime.strftime(b, "%Y-%m-%d %H:%M:%S")
print(c, type(c))
# strptime str point time;  str指向time,所以是 字符串 转化成time
# strftime str from time;   str来自time,所以是 time 转化为字符串
# 加减一定的天数、小时
d = b + datetime.timedelta(hours=8)  # 输入
print(d, type(d))
d = b - datetime.timedelta(days=1)  # 输入
print(d, type(d))
# 两个日期相减
# dt2 = datetime.datetime.now()
dt2 = datetime.datetime.strptime('2022-08-02 14:32:50', "%Y-%m-%d %H:%M:%S")
f = dt2 - b
# 获取秒数,天数
print(f.seconds)
print(f, type(f))
print(f.days, type(f.days))
# 第几周,周几
# %U 一年中的星期数(00-53)星期天为星期的开始
# %W 一年中的星期数(00-53)星期一为星期的开始
timee = [2022, 1, 9, 12, 12, 12]
dt = datetime.datetime(*timee)
week = datetime.datetime.strftime(dt, '%U')  # 以星期天为一周的开始
print('以星期天为一周的开始,当前第{}周'.format(week))
week = datetime.datetime.strftime(dt, '%W')  # 以星期一为一周的开始
print('以星期一为一周的开始,当前第{}周'.format(week))
week = datetime.datetime.strftime(dt, '%A')  # 周几
print('星期几,英文全称:' + week)
week = datetime.datetime.strftime(dt, '%a')  # 周几
print('星期几,英文简称:' + week)
week = datetime.datetime.strftime(dt, '%u')  # 周几
print('星期几,阿拉伯数字:' + week)

# 月份相减
# datetime不支持进行月份的相减,需要使用到另外一个模块dateutil
# 这个模块支持跨月份,并且考虑到了月末天数的特殊情况。
from dateutil.relativedelta import relativedelta

datetime_now = datetime.datetime(*timee)
datetime_1_month_before = datetime_now - relativedelta(months=1)
print(datetime_1_month_before, type(datetime_1_month_before))

# 时间格式化符号
# %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)
# %a本地简化星期名称
# %A本地完整星期名称
# %b本地简化的月份名称
# %B本地完整的月份名称
# %c本地相应的日期表示和时间表示
# %j年内的一天(001-366)
# %p本地A.M.或P.M.的等价符
# %U—年中的星期数(00-53)星期天为星期的开始
# %w星期(0-6),星期天为星期的开始
# %W一年中的星期数(00-53)星期—为星期的开始

image

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值