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

猜你喜欢

转载自blog.csdn.net/shangboerds/article/details/82817901