Python进行时间戳转换为标准时间

Python处理时间和时间戳的内置模块有timedatetime,本文主要使用time模块进行处理

一.时间戳相关知识

时间戳根据位数的不同,其对应的精读也不同,具体分为:10位(秒级),13位(毫秒级),16位(微秒级),19位(纳秒级)。本文主要处理10位(秒级),13位(毫秒级)的时间戳的转换问题。

  1. 时间戳( timestamp )

    • 简介:时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量,是一个float类型

    • 展示形式:1597397024.765705

  2. 时间元祖( struct_time )

    • 简介:共9个元素,时间戳和格式化时间转换的桥梁

    • 展现形式:time.struct_time(tm_year=2020, tm_mon=8, tm_mday=14, tm_hour=17, tm_min=23, tm_sec=44, tm_wday=4, tm_yday=227, tm_isdst=0)

    其中具体每项的含义:

    索引 属性 含义
    0 tm_year
    1 tm_mon
    2 tm_mday
    3 tm_hour
    4 tm_min
    5 tm_sec
    6 tm_wday 一周中的第几天
    7 tm_yday 一年中的第几天
    8 tm_isdst 夏令时
  3. 格式化时间 / 标准时间( format string )

    • 简介:格式化时间,时间格式标准化,可读性强;包括自定义格式和固定格式
    • 展现形式:2020-08-14 17:37:03
  4. 时间格式转换图

  5. time模块中与时间戳和时间相关的重要函数

    • time.time() 生成当前的时间戳,格式为10位整数的浮点数,其中在python中小数点后可精确到微秒,共计16位。

      a = time.time()
      print(a)1597398562.799617
      
    • time.strftime()根据时间元组生成时间格式化字符串。

      print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))2020-08-14 17:51:38
      
    • time.strptime()根据时间格式化字符串生成时间元组。time.strptime()time.strftime()为互操作。

      print(time.strptime("2020-08-14 18:00:23","%Y-%m-%d %H:%M:%S"))time.struct_time(tm_year=2020, tm_mon=8, tm_mday=14, tm_hour=18, tm_min=0, tm_sec=23, tm_wday=4, tm_yday=227, tm_isdst=-1)
      
    • time.localtime()根据时间戳生成当前时区的时间元组。

      b = time.localtime()
      print(b)time.struct_time(tm_year=2020, tm_mon=8, tm_mday=14, tm_hour=17, tm_min=51, tm_sec=38, tm_wday=4, tm_yday=227, tm_isdst=0)
      
    • time.mktime()根据时间元组生成时间戳。

      print(time.mktime(time.localtime()))1597399027.0
      
  6. 时间日期格式化符号

    %y 两位数的年份表示(00-99)
    %Y 四位数的年份表示(000-9999)
    %m 月份(01-12)
    %d 月内中的一天(0-31)
    %H 24小时制小时数(0-23)
    %I 12小时制小时数(01-12)
    %M 分钟数(00=59)
    %S 秒(00-59)
    %a 本地简化星期名称
    %A 本地完整星期名称
    %b 本地简化的月份名称
    %B 本地完整的月份名称
    %c 本地相应的日期表示和时间表示
    %j 年内的一天(001-366)
    %p 本地A.M.或P.M.的等价符
    %U 一年中的星期数(00-53)星期天为星期的开始
    %w 星期(0-6),星期天为星期的开始
    %W 一年中的星期数(00-53)星期一为星期的开始
    %x 本地相应的日期表示
    %X 本地相应的时间表示
    %Z 当前时区的名称
    %% %号本身

二.实验中进行的转换工作

主要工作是读取一个文件中的内容,将其中的16位的时间戳先进行截取得到13位的时间戳,之后通过转换函数,将13位的时间戳转换为秒级的标准格式的时间,之后将数据存入到MySQL数据库中

#coding=utf-8import re
import time
import pymysql# 输入毫秒级的时间,转出正常格式的时间
def timeStamp(timeNum):timeStamp = float(timeNum/1000)timeArray = time.localtime(timeStamp)otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)print (otherStyleTime)return otherStyleTimedef opData():global sessionidglobal plansessionidglobal activitynameglobal starttimestampglobal finishtimestampglobal executeplaceglobal sfstatusglobal falsereasonstartTime=0# 建立数据库连接db = pymysql.connect(host="localhost",port=3306,user="root",password="123456",database="service_l_20200701_backup",charset="utf8")# 获取游标对象cursor = db.cursor()# 插入数据语句# _copy2query = """insert into t_service_status_copy1 (session_id,plansession_id,activity_name,start_timestamp,finish_timestamp,execute_place,sf_status,false_reason) values (%s,%s,%s,%s,%s,%s,%s,%s) ON duplicate KEY UPDATE session_id = session_id"""with open('trace1.data',"r") as f:# data = f.readline()for fLine in f:startTime+=1;x=fLine.split('|')if(startTime < 10000):# print("data:")# print(data)# print("fLine:")# print(fLine)for i in range(len(x)):if i == 0:num0 = re.sub(r'\D', "", x[i])plansessionid = num0# x1[1].replace("a-zA-Z",x1[1])#     print("x[0]:"+num0)elif i == 1 :temp=x[i][:-3]x2 = int(temp)time160 = timeStamp(x2)starttimestamp = time160# print("x[1]:" + time160)elif i == 2 :num2 = re.sub(r'\D', "", x[i])sessionid = num2# print("x[2]:" + num2)elif i == 3:num3 = re.sub(r'\D', "", x[i])# print("x[3]:" + num3)elif i == 4:# print("x1="+x[1])tempp1 = int(x[1])tempp2 = int(x[i])# print(tempp1)# print(tempp2)num4 = tempp1 + tempp2# print(num4)# num4 = int(x[1]) + int(x[i])strTonum4=str(num4)temp1 = strTonum4[:-3]# temp1 = int(x[1][:-3])mafan = int(temp1)time161 = timeStamp(mafan)finishtimestamp = time161# print("x[4]:" + time161)elif i == 5:activityname = x[i]# print("x[5]:"+x[i])elif i == 7:executeplace = x[i]# print("x[7]:"+x[i])elif i == 8:line = "http.status_code=200"m = x[i].find(line)if m == -1:sfstatus = "false"falsereason = x[i]else:sfstatus = "success"falsereason = ""# print(m)# print(sfstatus)else:print("x["+str(i)+"]:"+x[i])values = (int(sessionid),int(plansessionid),str(activityname),str(starttimestamp),str(finishtimestamp),str(executeplace),str(sfstatus),str(falsereason))cursor.execute(query, values)passprint(startTime)# 关闭游标,提交,关闭数据库连接# 如果没有这些关闭操作,执行后在数据库中查看不到数据cursor.close()db.commit()db.close()if __name__ == '__main__':opData()

本文参考的博客:

  • python中的time模块相关参数
  • python关于time几种格式处理方法总结
  • Python之time模块的时间戳、时间字符串格式化与转换(13位时间戳)
  • python 毫秒级时间,时间戳转换
  • python学习记录14–给自己:python中time模块里的时间戳和格式化日期以及倒计时功能
  • 在线时间转换工具

Python进行时间戳转换为标准时间相关推荐

  1. linux c时间戳转换,Android C/C++代码中将时间戳转换为标准时间

    在Android 底层C/C++代码中如何将时间戳转换为标准时间? 这个问题实质上可以理解为C/C++中如何将Linux的时间戳转换为标准时间,那么接下来就这个问题进行分析和处理. 首先,要在C/C+ ...

  2. Python 将时间戳转换为本地时间并进行格式化

    在python中,时间戳默认是为格林威治时间,而我们为东八区 使用localtime() 本地化时间戳 使用 strftime() 格式化时间戳 time = time.strftime('%Y%m% ...

  3. 每日一学:Python 将时间戳转换为指定格式日期

    点击上方"CSDN精品课",选择"置顶公众号" 第一时间获取精品编程教程 Python 发布以来,出现过几次大的飞跃,如 2008 年 Python 3.0 的 ...

  4. 生信服务器 | Linux 时间戳和标准时间

    在 Linux 系统中,有许多场合都使用时间戳的方式表示时间,即从1970年1月1日起至当前的天数或秒数.如/etc/shadow里的密码更改日期和失效日期,还有代理服务器的访问日志对访问时间的记录等 ...

  5. matlab实现unix时间戳到标准时间的转换

    [注]给定时间精确到小时的情况下的转换 函数: function [ date ] = ConvertDate( x ) %将unix时间戳转换为标准时间 % date = datestr(14264 ...

  6. python将时间戳与年月日时分秒时间的互相转换

    有时候我们会看到日期是167xxxxxxxx这种形式,这种形式我们通俗一点叫做时间戳,他可以进行转换为我们日常生活中所用的时间格式显示,demo如下: python将时间戳转换为年月日时分秒时间 im ...

  7. 关于时间格式的转换(时间戳转换为标准格式/标准格式转换为时间戳)

    1.将标准时间格式转化为时间戳 getTimeStamp(str){var date = new Date(str);// 可以准确精确到毫秒var time1 = date.getTime(date ...

  8. python 将一串数字形式的时间转换为标准时间格式

    @python 将一串数字形式的时间转换为标准时间格式!!! 1.首先,确定你的那一串时间是10位还是13位的, 如果是10位请看方案一,13位请看解决方案二. 方案一: 10位的数字表示的是秒时间戳 ...

  9. python中int转换为时间戳_python日期和时间戳互相转化操作详解

    Python中日期格式化是非常常见的操作,Python 中能用很多方式处理日期和时间,转换日期格式是一个常见的功能.Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时 ...

  10. JS中时间戳(毫秒数)转换为标准时间日期

    在前端中,有时候会用到时间戳参数,时间戳参数大多是new Date()形成的毫秒数 在某些情况下,需要还原时间戳表示的时间,也就是将毫秒数转换为标准时间格式的日期 // 假设timeStamp为时间戳 ...

最新文章

  1. leetcode算法题--最长等差数列★
  2. Java建造圆判断是否在园内_java – 查找一个圆圈是否在另一个圆圈内
  3. 在git下搭建个人博客
  4. django mysql内存泄漏_Django的:使内存的关系,而不保存到数据库
  5. 人工智能之基于face_recognition的人脸检测与识别
  6. api 数据gzip压缩_如何使用GZip和Jersey压缩Java REST API中的响应
  7. 论文浅尝 | Rot-Pro:通过知识图谱嵌入中的投影建模关系的传递性
  8. ajax调用java程序,从微信小程序到鸿蒙JS开发-JS调用Java
  9. 每天学一点flash(75) ToolTip 提示
  10. 4.3.3 用jQuery获取动态数据
  11. MTK 驱动(67)---深入MTK平台bootloader启动之【 lk -amp;gt; kernel】分析笔记
  12. python动态人脸识别_python3.8动态人脸识别
  13. 在MOSS2007中使用收集反馈工作流
  14. Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:jar
  15. java end_Java Matcher end()用法及代码示例
  16. 房地产企业项目管理的特点与目标
  17. Git快速入门篇—— Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程)
  18. 删除 linux的ln文件夹,linux下添加链接与删除链接(ln命令的用法)
  19. LaTeX--简易教程--论文写作神器
  20. 卢沟桥对于古代北京的作用

热门文章

  1. Ceres-Solver使用指南
  2. 云计算数据中心运维管理的五大重点
  3. 【自勉-向后端架构师/音视频架构师出发】我的目标是星辰大海(4月)
  4. 聚沙成塔的分布式云存储
  5. python语言由psf组织所有、这是一个商业组织_智慧职教云课堂APP店长实务答案搜题公众号...
  6. laravel:如何快速实现数据填充,创建模拟数据(使用seeder)
  7. JAVA核心知识点--元注解详解
  8. Hutool学习 —— 设置文件-Setting
  9. Python 错误 RuntimeError: CUDA error (10): invalid device ordinal
  10. 如何用微信公众号二维码事件做扫码登陆