Python 日期模块 -- datetime

– Start

import time as xtime
from datetime import datetime, date, time, timezone, timedelta
china_tz = timezone(timedelta(hours=8), 'Asia/Shanghai')


# 构造 datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
dt = datetime(2018, 9, 22, 16, 28, 22)
dt = datetime.today()       # 无时区信息
dt = datetime.now()         # 无时区信息
dt = datetime.now(china_tz) # 有时区
dt = datetime.utcnow()      # UTC 时区
dt = datetime.combine(date.today(), time(16, 28, 22))
dt = datetime.combine(date.today(), time(16, 28, 22), china_tz)
dt = datetime.fromordinal(736959) # datetime.min以来的天数
dt = datetime.fromisoformat('2018-09-22')
dt = datetime.fromisoformat('2018-09-22 16:28:22')
dt = datetime.fromisoformat('2018-09-22 16:28:22.666')
dt = datetime.fromisoformat('2018-09-22 16:28:22.666+08:00')
dt = datetime.strptime('2018-09-22 16:28:22', '%Y-%m-%d %H:%M:%S')
dt = datetime.fromtimestamp(xtime.time())
dt = datetime.utcfromtimestamp(xtime.time())


# 类属性
print('----------------------------- 类属性')
print(datetime.min)         # 0001-01-01 00:00:00
print(datetime.max)         # 9999-12-31 23:59:59.999999
print(datetime.resolution)  # 0:00:00.000001


# 实例属性
print('----------------------------- 实例属性')
dt = datetime(2018, 9, 22, 16, 28, 22, 999, china_tz)
print(dt.year)          # 2018
print(dt.month)         # 9
print(dt.day)           # 22
print(dt.hour)          # 16
print(dt.minute)        # 28
print(dt.second)        # 22
print(dt.microsecond)   # 999
print(dt.tzinfo)        # Asia/Shanghai
print(dt.fold)          # 0


# 方法
print('----------------------------- 方法')
print(dt.date())          # 2018-09-22
print(dt.time())          # 16:28:22.000999
print(dt.timetz())        # 16:28:22.000999+08:00
print(dt.toordinal())     # 736959
print(dt.timestamp())     # 1537604902.000999
print(dt.weekday())       # Monday is 0 and Sunday is 6
print(dt.isoweekday())    # Monday is 1 and Sunday is 7
print(dt.isoformat())     # 2018-09-22T16:28:22.000999+08:00
print(dt.ctime())         # Sat Sep 22 16:28:22 2018
print(dt.strftime('%Y-%m-%d %H:%M:%S')) # 2018-09-22 16:28:22
print(dt.tzname())                  # 时区名
print(dt.utcoffset())               # 相对 UTC 时差
print(dt.dst())                     # 转换为夏令时
print(dt.timetuple())               # 转成 time.struct_time 
print(dt.utctimetuple())            # 转成 time.struct_time 
print(dt.astimezone(timezone.utc))  # 时区转换

# datetime 是不可变的,replace 不会修改原 datetime
today = datetime.today()
tomorrow = today.replace(day=today.day + 1)
print(tomorrow)

year, week, weekday = dt.isocalendar()
print(year, week, weekday) # (2018, 38, 6) 



# 比较时间
dt1 = datetime(2018, 9, 22, 16, 28, 22)
dt2 = datetime(2018, 9, 22, 16, 28, 23)
if dt1 < dt2:
    print(f'{dt1} is before {dt2}')

– 更多参见:Python 精萃
– 声 明:转载请注明出处
– Last Updated on 2018-09-22
– Written by ShangBo on 2018-09-22
– End

  • 2
    点赞
  • 3
    收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shangboerds

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值