时间戳Unix和北京时间转换

1. Unix 时间戳(Unix Timestamp)是指从 1970 年 1 月 1 日 00:00:00 UTC 开始所经过的秒数(或毫秒数)


2. UTCCoordinated Universal Time(协调世界时)

  • 含义:UTC 是全球标准的时间基准,用于协调世界各地的时钟。它是基于 原子钟 的高精度时间标准,同时与 地球自转 保持同步(通过闰秒调整)。UTC 是 格林尼治标准时间(GMT) 的继任者,但比 GMT 更精确。


3. Unix 和 UTC 的关系

  • Unix 时间戳是基于 UTC 的,表示从 1970 年 1 月 1 日 00:00:00 UTC 开始的秒数。

  • 因此,Unix 时间戳本质上是一个 UTC 时间点。

  • 当需要将 Unix 时间戳转换为本地时间时,需要根据本地时区进行调整(例如,北京时间为 UTC+8)。


4.北京时间和时间戳转换代码

import pandas as pd

# 读取CSV文件
df = pd.read_csv('your_file.csv')

# 将时间戳转换为北京时间
df['date'] = pd.to_datetime(df['Timestamp'], unit='s').dt.tz_localize('UTC').dt.tz_convert('Asia/Shanghai')

# 将时间格式化为不带时区的字符串格式
df['date'] = df['date'].dt.strftime('%Y-%m-%d %H:%M:%S')

# 保存到新的CSV文件
df.to_csv('new_file.csv', index=False)

注意,这里的时间戳转换加了8小时!!

怎么判断是否需要加 8 小时?
  • 需要加 8 小时的情况

    当时间戳是 UTC 时间时,北京时间是 UTC+8,因此需要将 UTC 时间加上 8 小时。上述代码通过 .dt.tz_convert('Asia/Shanghai') 自动完成了时区转换(包括加 8 小时)。
  • 不需要加 8 小时的情况

    如果时间戳已经是北京时间(即本地时间),则不需要再加 8 小时。如果时间戳没有时区信息,但实际上是本地时间,也不需要额外处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值