"""日期时间处理
格式:
%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)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
"""
import datetime
# 年月日构造日期
date1 = datetime.date(year=2022, month=6, day=1)
print(f'date1:{date1}')
# 从1970-1-1开始计算秒数
date2 = datetime.date.fromtimestamp(60*60*16)
print(f'date2:{date2}')
# 从iso格式构造date
date3 = datetime.date.fromisoformat('1970-02-02')
print(f'date3:{date3}')
# 时间
time1 = datetime.time(hour=1, minute=1, second=1, microsecond=1)
print(f'time1:{time1}')
print(f'time1.hour:{time1.hour}')
# 日期时间
datetime1 = datetime.datetime(2022, month=6, day=1, hour=12, minute=30, second=1)
print(f'datetime1:{datetime1}')
print(f'datetime1.strformat={datetime1.strftime("%y--%b--%d")}')
# 时间差
datetime2 = datetime.datetime(2022, 1, 1)
print(f'datetime2:{datetime2}')
timedelta1 = datetime.timedelta(days=1)
print(f'datetime2 + 1day={datetime2+timedelta1}')
print(f'datetime1 - datetime2={datetime1-datetime2}')
from datetime import datetime, timedelta, timezone
# 时区
utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)
print(f'utc_dt={utc_dt}')
cn_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))
print(f'cn_dt={cn_dt}')
jan_dt = utc_dt.astimezone(timezone(timedelta(hours=9)))
print(f'jan_dt={jan_dt}')
cn_2_jan_dt = cn_dt.astimezone(timezone(timedelta(hours=9)))
print(f'cn_2_jan_dt={cn_2_jan_dt}')

文章转载自与C同行,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




