如何导入指定格式时间戳并计算距今天数?
计算ISO时间戳距今的天数
步骤1:把时间字符串转成datetime对象
不用写复杂的strptime格式串,利用Python 3.7+支持的fromisoformat方法,只要把末尾的Z替换成UTC时区标识+00:00就能直接解析:
timestamp_str = "2024-09-27T04:58:04.894614Z" # 替换Z为UTC时区格式,适配fromisoformat target_dt = datetime.fromisoformat(timestamp_str.replace("Z", "+00:00"))
步骤2:获取当前时间(推荐用UTC避免时区误差)
因为原始时间是UTC时区(带Z),用UTC时间计算差值更准确:
current_utc = datetime.now(datetime.timezone.utc)
如果只关心本地日期差,也可以用date.today()获取本地当前日期。
步骤3:计算天数差
直接对两个datetime(或date)对象做减法,取结果的days属性即可:
# 基于UTC时间的精确天数差(包含时间部分的计算) days_since = (current_utc - target_dt).days # 或者只按日期计算(忽略时分秒,适合只关心日期间隔的场景) target_date = target_dt.date() current_date = date.today() days_since = (current_date - target_date).days
注意点
- 用本地日期计算时,要注意UTC时间和本地时间可能存在日期差(比如UTC凌晨1点,本地可能还是前一天的晚上),根据需求选择即可。
fromisoformat比strptime更简洁,完全适配这种标准ISO格式的时间字符串。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

