本文目录导读:

Python脚本(最常用)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
批量时间戳转换脚本
支持:Unix时间戳 ↔ 可读日期时间
"""
import datetime
import sys
import os
def timestamp_to_datetime(timestamp, timezone=8):
"""时间戳转日期时间(默认东八区)"""
try:
# 处理毫秒级时间戳
if timestamp > 1e12:
timestamp = timestamp / 1000
dt = datetime.datetime.fromtimestamp(timestamp)
dt = dt + datetime.timedelta(hours=timezone)
return dt.strftime('%Y-%m-%d %H:%M:%S')
except:
return None
def datetime_to_timestamp(date_str, timezone=8):
"""日期时间转时间戳"""
try:
formats = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M', '%Y-%m-%d',
'%Y/%m/%d %H:%M:%S', '%Y%m%d', '%Y%m%d%H%M%S']
for fmt in formats:
try:
dt = datetime.datetime.strptime(date_str, fmt)
dt = dt - datetime.timedelta(hours=timezone)
return int(dt.timestamp())
except:
continue
return None
except:
return None
def batch_convert(input_file, output_file, mode='t2d', timezone=8):
"""
批量转换
mode: 't2d' 时间戳→日期, 'd2t' 日期→时间戳
"""
with open(input_file, 'r', encoding='utf-8') as f:
lines = f.readlines()
results = []
errors = []
for i, line in enumerate(lines, 1):
content = line.strip()
if not content:
continue
if mode == 't2d':
try:
timestamp = float(content)
result = timestamp_to_datetime(timestamp, timezone)
if result:
results.append(f"{content} -> {result}")
else:
errors.append(f"第{i}行: {content} 转换失败")
except:
errors.append(f"第{i}行: {content} 不是有效时间戳")
else:
result = datetime_to_timestamp(content, timezone)
if result:
results.append(f"{content} -> {result}")
else:
errors.append(f"第{i}行: {content} 转换失败")
with open(output_file, 'w', encoding='utf-8') as f:
f.write('\n'.join(results))
if errors:
f.write('\n\n错误记录:\n' + '\n'.join(errors))
print(f"转换完成!成功: {len(results)}条, 失败: {len(errors)}条")
print(f"结果保存至: {output_file}")
def main():
if len(sys.argv) < 2:
print("用法:")
print(" 交互模式: python timestamp_converter.py")
print(" 命令行模式: python timestamp_converter.py input.txt output.txt [t2d|d2t] [时区]")
print()
print("示例:")
print(" 时间戳转日期: python timestamp_converter.py timestamps.txt dates.txt t2d 8")
print(" 日期转时间戳: python timestamp_converter.py dates.txt timestamps.txt d2t 8")
sys.exit(1)
if sys.argv[1] == '-i':
# 交互模式
interactive_mode()
else:
# 命令行模式
input_file = sys.argv[1]
output_file = sys.argv[2] if len(sys.argv) > 2 else 'output.txt'
mode = sys.argv[3] if len(sys.argv) > 3 else 't2d'
timezone = int(sys.argv[4]) if len(sys.argv) > 4 else 8
batch_convert(input_file, output_file, mode, timezone)
def interactive_mode():
print("=== 批量时间戳转换工具 ===")
print("1. 时间戳转日期时间")
print("2. 日期时间转时间戳")
choice = input("请选择转换方向 (1/2): ")
mode = 't2d' if choice == '1' else 'd2t'
input_file = input("输入文件路径: ")
output_file = input("输出文件路径 (默认: output.txt): ") or 'output.txt'
timezone = input("时区 (默认东八区8): ") or '8'
if not os.path.exists(input_file):
print(f"错误: 文件 {input_file} 不存在!")
return
batch_convert(input_file, output_file, mode, int(timezone))
if __name__ == "__main__":
main()
Shell脚本(Linux/Mac)
#!/bin/bash
# batch_timestamp_converter.sh
# 用于批量转换时间戳
# 时间戳转日期
timestamp_to_date() {
local timestamp=$1
if [ ${#timestamp} -gt 10 ]; then
# 毫秒级时间戳
timestamp=$((timestamp / 1000))
fi
date -d "@$timestamp" "+%Y-%m-%d %H:%M:%S"
}
# 主函数
convert_batch() {
local input_file=$1
local output_file=$2
local mode=$3 # "t2d" 或 "d2t"
if [ ! -f "$input_file" ]; then
echo "错误: 输入文件 $input_file 不存在"
exit 1
}
while IFS= read -r line; do
if [ -z "$line" ]; then
continue
fi
if [ "$mode" = "t2d" ]; then
result=$(timestamp_to_date "$line")
echo "$line -> $result" >> "$output_file"
else
# 这里需要根据具体格式处理日期转时间戳
result=$(date -d "$line" +%s)
echo "$line -> $result" >> "$output_file"
fi
done < "$input_file"
echo "转换完成!结果保存至 $output_file"
}
# 使用示例
# 时间戳转日期
# convert_batch timestamps.txt dates.txt t2d
# 日期转时间戳(需要日期格式正确)
# convert_batch dates.txt timestamps.txt d2t
使用说明
准备输入文件
创建文本文件,每行一个时间戳或日期:
# timestamps.txt 1630000000 1630100000 1630200000 1625097600000
# dates.txt 2021-08-27 10:00:00 2021-08-28 10:00:00 2021-08-29 10:00:00
运行脚本
# 时间戳转日期 python timestamp_converter.py timestamps.txt dates.txt t2d 8 # 日期转时间戳 python timestamp_converter.py dates.txt timestamps.txt d2t 8 # 交互模式 python timestamp_converter.py -i
支持的输入格式
脚本支持多种日期格式自动识别:
2021-08-27 10:00:002021-08-27 10:002021-08-272021/08/27 10:00:002021082720210827100000
处理毫秒级时间戳
脚本自动处理:
- 10位时间戳(秒级)
- 13位时间戳(毫秒级)
- 16位时间戳(微秒级)
批量处理示例文件
# 如果你只有一个Excel文件需要处理
import pandas as pd
def convert_excel_timestamps(input_excel, column_name, output_excel):
"""
转换Excel中的时间戳列
"""
df = pd.read_excel(input_excel)
# 假设时间戳在'timestamp'列
df[column_name] = pd.to_datetime(df[column_name], unit='s')
# 如果有毫秒级时间戳
# df[column_name] = pd.to_datetime(df[column_name], unit='ms')
df.to_excel(output_excel, index=False)
print(f"转换完成!保存至 {output_excel}")
# 使用
# convert_excel_timestamps('data.xlsx', 'timestamp', 'result.xlsx')
这些脚本支持批量转换,你只需要准备好包含时间戳或日期的文本文件即可,根据你的具体需求选择合适的脚本。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播