Python中关于时间和日期的操作
获取当前时间和时间戳
import time
current_timestamp = time.time() # 1681261489.7928634
int(current_timestamp) # 1681261489
int(current_timestamp * 1000) # 1681261489792
时间和字符串互转
字符串转时间
import datetime
time_str = '2023-04-12 14:30:00'
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
时间格式化为字符串
import datetime
time_obj = datetime.datetime.now()
time_str = time_obj.strftime('%Y-%m-%d %H:%M:%S')
print(time_str) # 2023-04-12 14:30:00
时间和时间戳互转
时间转时间戳
import datetime
time_obj = datetime.datetime.now()
timestamp = time_obj.timestamp()
时间戳转时间
import datetime
timestamp = 1618585551
time_obj = datetime.datetime.fromtimestamp(timestamp)
时间元组转时间
import datetime
# 时间元组
t = (2022, 4, 12, 9, 30, 0, 1, 102, 0)
# 将时间元组转换为datetime对象
dt = datetime.datetime(*t[:6])
print(dt.timestamp()) # 输出:2022-04-12 09:30:00
时间的计算
import datetime
now = datetime.datetime.now()
five_days_ago = now - datetime.timedelta(days=5)
three_hours_later = now + datetime.timedelta(hours=3)
时区和夏令时
处理时区和夏令时问题,可以用pytz库
import datetime
import pytz
now = datetime.datetime.now()
# 创建时区对象(美国洛杉矶时区)
timezone = pytz.timezone('America/Los_Angeles')
# 将当前时间转换为美国洛杉矶时区时间
now_in_la_timezone = timezone.localize(now)
# 输出当前时间和美国洛杉矶时区时间
print(now)
print(now_in_la_timezone)
2023年11月5日起,美国将实行永久夏令时
date、datetime、time的区别
date模块主要用于表示日期信息,包括年、月、日。其类date提供了一些实例方法,如获取某个日期的星期几、某个日期的前一天或后一天等。
time模块主要用于表示时间信息,包括时、分、秒。其类time提供了一些实例方法,如获取当前时间、将时间对象转化为字符串等。
datetime模块既可以表示日期信息,也可以表示时间信息。其类datetime可以同时表示年、月、日、时、分、秒等信息。它也提供了一些实例方法,如获取某个日期的前一天或后一天、将日期时间对象转化为字符串等。
发表评论