首页 > 解决方案 > 如何将纪元时间值转换为本地时间?

问题描述

问题是如何在每一行中传递纪元时间的数值并将其转换为本地时间。

输入文件:log_data.csv

id: 535,    epoch_time: 1611773844,    nsecs: 158737495, state: 2,status: 1
id: 536,    epoch_time: 1611773844,    nsecs: 258731299, state: 2,status: 1
id: 537,    epoch_time: 1611773844,    nsecs: 358585677, state: 4,status: 3
id: 538,    epoch_time: 1611773844,    nsecs: 458462033, state: 2,status: 1

代码片段:

import datetime

def time(data):
 fmt = "%Y-%m-%d %H:%M:%S"
 t = datetime.datetime.fromtimestamp(float(s)/1000.)
 print t.strftime(fmt)

def read_comlumn():
 for line in open("log_cleaning_3_final.log"):
     columns = line.split(',')

标签: pythondateepoch

解决方案


您可以使用csv模块并从这里开始

import csv
import datetime

def convert(data):
  fmt = "%Y-%m-%d %H:%M:%S"
  t = datetime.datetime.fromtimestamp(float(data)/1000.)
  return t.strftime(fmt)

with open('log_cleaning_3_final.log', 'r') as f:
    csv_data = csv.reader(f)
    csv_lines = list(csv_data)

for line in csv_lines:
  line[1] = convert(line[1].split(':')[1].strip())

with open('log_cleaning_3_final.log', 'w') as f:
  writer = csv.writer(f)
  writer.writerows(csv_lines)

推荐阅读