Python时间计算
pandas
pd.date_range
Day
# 创建时间
pd.date_range(start='1/1/2018', end='1/08/2018')
# 起始时间向后顺延8D
pd.date_range(start='1/1/2018', periods=8)
# 结束时间向前顺延8D
pd.date_range(end='1/1/2018', periods=8)
# 起始结束不动,平均分
pd.date_range(start='2018-04-24', end='2018-04-27', periods=3)
Month
# 起始日期向后顺延5M
pd.date_range(start='1/1/2018', periods=5, freq='M')
# 起始日期向后顺延5M,跨度为3M
pd.date_range(start='1/1/2018', periods=5, freq='3M')
TimeZone
# 创建日本/东京时区时间
pd.date_range(start='1/1/2018', periods=5, tz='Asia/Tokyo')
pd.to_datetime
创建日期
pd.DataFrame({'year': [2015, 2016],
'month': [2, 3],
'day': [4, 5]})
时间戳转换日期
pd.to_datetime(1490195805, unit='s')
Timestamp('2017-03-22 15:16:45')
pd.to_datetime(1490195805433502912, unit='ns')
Timestamp('2017-03-22 15:16:45.433502912')
字符串转日期
pd.to_datetime(['2018-10-26 12:00', '2018-10-26 13:00:15'])
from datetime import datetime
pd.to_datetime(["2020-01-01 01:00 -01:00", datetime(2020, 1, 1, 3, 0)])
日期计算
from datetime import timezone, timedelta
pd.to_datetime(['2018-10-26 12:00', '2018-10-26 12:00 -0530',
datetime(2020, 1, 1, 18),
datetime(2020, 1, 1, 18,
tzinfo=timezone(-timedelta(hours=1)))],
utc=True)
DatetimeIndex(['2018-10-26 12:00:00+00:00', '2018-10-26 17:30:00+00:00',
'2020-01-01 18:00:00+00:00', '2020-01-01 19:00:00+00:00'],
dtype='datetime64[ns, UTC]', freq=None)
pd.Timedelta
日期计算,年月同理,尽心加减运算
pd.Timedelta(1, "d")
pd.Timedelta(days=1)
Datatime
获取时间
import datetime
# 获取系统当前时间。
datetime.datetime.now()
# 获取系统今天时间。
datetime.datetime.today()
# 获取系统今天日期
datetime.date.today()
时间计算
detetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
"""
参数说明
①days:指定相差天数。可选,默认为0。
②seconds:指定相差秒数。可选,默认为0。
③microseconds:指定相差微秒数。可选,默认为0。
④milliseconds:指定相差毫秒数值。可选,默认为0。
⑤minutes:指定相差分钟数值。可选,默认为0。
⑥hours:指定相差小时数值。可选,默认为0。
⑦weeks:指定相差周数。可选,默认为0。
"""
字符串转日期,日期转字符串
# 字符串转日期
datetime.datetime.strptime("2020-01-01 18:00:00", "%Y-%m-%d %H:%M:%S")
# 日期转字符串
datetime.datetime.strftime(datetime.datetime(2020, 1, 1, 18, 0), "%Y-%m-%d %H:%M:%S")
国际化
import time
# 获取当前国际 UTC 时间
datetime.utcfromtimestamp(time.time())
def now_time_get_time_offset(tmp_time=time.time()):
"""
通过传入时间获取与UTC时区偏移量 默认当前时间
:param tmp_time: type(time) 当前时间戳 e.g. 1669690645.691196
:return int
"""
time_offset = (datetime.datetime.fromtimestamp(tmp_time) -
datetime.datetime.utcfromtimestamp(tmp_time)).total_seconds() / 60 / 60
return int(time_offset)
# 通过key获取时区
from pytz import timezone
tz = timezone("Asia/Shanghai")
def time_zone_get_time_offset(time_zone="Asia/Shanghai"):
"""
通过传入时区获取与UTC时区偏移量 默认系统时区
:param time_zone: type(str) 时区 e.g. Asia/Shanghai
:return int
"""
tz = timezone(time_zone)
res = datetime.datetime.now(tz).utcoffset().total_seconds() / 60 / 60
return int(res)
觉得文章写的不错,可以请喝杯咖啡
- Post link: https://yanxiang.wang/python3%E6%97%A5%E6%9C%9F%E6%97%B6%E9%97%B4/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.