📅  最后修改于: 2023-12-03 15:12:18.748000             🧑  作者: Mango
Excel Unix 时间戳是指日常使用的 Excel 中显示的日期数字所对应的 Unix 时间(即自1970年1月1日00:00:00 GMT以来经过的秒数)。
在 Excel 中,时间被表示为一个小数,其整数部分代表日期,小数部分代表时间。例如,2019年1月1日下午2点30分可以表示为 43465.6041666667,其中43465是日期的序号,0.6041666667表示时间的比例。具体来说,1天相当于24小时,即1/24,1小时是60分钟,即1/24/60,1分钟是60秒,即1/24/60/60,所以 0.5(12:00:00 PM)= 0.5 * 24 = 12 小时,0.25(6:00:00 AM)= 0.25 * 24 = 6 小时。
Excel UNIX 时间戳 = (excel 日期 - 25569) * 86400
其中,25569是一个偏差值,表示Excel与Unix的日期数。86400是一天的秒数。
下面是使用Python计算 Excel Unix 时间戳的示例代码片段:
import datetime
def excel_unix_timestamp(excel_date):
epoch_start = datetime.datetime.strptime('1970-01-01', '%Y-%m-%d')
delta = datetime.timedelta(days=(excel_date - 25569))
unix_time = (epoch_start + delta).strftime('%s')
return unix_time
# 示例:将 43465.6041666667 转换为 Unix 时间戳
print(excel_unix_timestamp(43465.6041666667)) # 1546300200
除了使用上述公式进行 Excel Unix 时间戳的转换外,还可以使用Python的xlrd
库和time
库来实现 Excel 日期和 Unix 时间戳的互相转换。下面是示例代码片段:
import xlrd
import datetime
import time
# 将Excel日期转换为Unix时间戳
def excel_date_to_unix_timestamp(excel_date):
dt_tuple = xlrd.xldate_as_tuple(excel_date, 0)
timestamp = time.mktime(dt_tuple)
return int(timestamp)
# 将Unix时间戳转换为Excel日期
def unix_timestamp_to_excel_date(unix_time):
dt = datetime.datetime.fromtimestamp(unix_time)
excel_date = (dt - datetime.datetime(1899, 12, 30)).days + \
(dt - datetime.datetime(1899, 12, 30)).seconds / 86400
return excel_date
# 示例:将 43465.6041666667 转换为 Unix 时间戳
excel_date = 43465.6041666667
print(excel_date_to_unix_timestamp(excel_date)) # 1546300200
# 示例:将 1546300200 转换为 Excel 时间
unix_time = 1546300200
print(unix_timestamp_to_excel_date(unix_time)) # 43465.6041666667
以上就是 Excel Unix 时间戳的介绍和示例代码片段。