Python3-22/456- 014Python日期和时间

一、日期时间

1.1 通过time模块获取当前日期

import time

# 打印当前时间方式1
t = time.localtime()
current_time = time.strftime("%Y-%m-%d %H:%M:%S",t)
print(current_time)

# 打印当前时间方式2
current_time = time.strftime('%Y-%m-%d %H:%M:%S')
print(current_time)

1.2 通过datetime模块获取当前时间

from datetime import datetime
dt = datetime.now()
dt_str = dt.strftime('%Y-%m-%d %H:%M:%S')
print(dt_str)

二、日期时间的格式化(strf = strformat)和解析(strp = strparse)

        以上内容已经介绍了日期时间的格式化,这里只做日期时间字符串的解析!

# 使用time模块解析
import time
time_jiexi = time.strptime("30 Nov 00","%d %b %y")
print(time_jiexi)
#输出结果
time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)

# 使用datetime模块解析
from datetime import datetime
datetime_jiexi = datetime.strptime("2020-06-13 19:03:20","%Y-%m-%d %H:%M:%S")
print(datetime_jiexi)

三、日期时间计算

# 引入datetime模块中的timedelta对象,用来操纵datetime时间
from datetime import datetime,timedelta
ten_hours_from_now = datetime.now() + timedelta(hours=9)
print(ten_hours_from_now)

# 算数运算,计算时间的长短
from datetime import datetime
time1 = datetime(1985, 9, 10, 0, 10)
time2 = datetime(1986, 9, 10, 0, 10)
print(time1 - time2)

四、时间转epoch时间戳(timestamp)

        Epoch时间,即时间戳(timestamp),也称为Unix时间和POSIX时间,是用自世界标准时间(1970-1-1 00:00:00的秒数值)

#时间对象转epoch时间
#time模块实现
import time
now = int(time.time())
print(now)

#datetime模块实现
from datetime import datetime

print(datetime(2022, 5, 20, 23, 0).timestamp())

五、关于时区timezone,以及UTC等

        日期时间对象,分为两类。一类是"感知型",另一类是"简单型",简单说判断日期时间对象是否为"感知型"还是"简单型",看日期时间对象是否有tzinfo对象!

        "感知型":就是在对象里面包含时区信息,对于一个给定的日期时间,无论在哪个时区转换成UTC都是同一个时间

        "简单型":就是在对象里面不包括时区信息,对于一个时间处于哪个时区,完全靠开发者自己来确定!

# # 判断是否为简单型还是感知型,是否有tzinfo对象
# from datetime import datetime
#
# print(datetime.now().tzinfo)

# 要使得datetime对象变成"感知型",可以引入pytz库
# 首先实例化一个timezone对象,然后使用timezone对象将datetime对象localize(本地化)
# localize(本地化)只是给出对象的时区信息

import datetime
import pytz
now = datetime.datetime.now()
timezone = pytz.timezone("Asia/Shanghai")
now_aware = timezone.localize(now)
print(now_aware.tzinfo)
print(now_aware)

#获取pytz模块支持的所有时区
# print(pytz.all_timezones)

#转换成其它时区
timezone2 = pytz.timezone("US/Pacific")
now  = datetime.datetime.now()
now_aware = timezone2.localize(now)
print(now_aware.tzinfo)
print(now_aware)

#以上两个时区的代码输出结果
Asia/Shanghai
2022-05-20 23:51:48.438035+08:00
US/Pacific
2022-05-20 23:51:48.558968-07:00

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值