Python中三种时间格式转换的方法

目录
  • 一 时间元组
  • 二 字符串与时间戳
  • 三 时间的加减用法

一 时间元组

1. 时间元组和时间戳的互化

import time,datetime
# 获取当前时间的时间元组
t = time.localtime()
print(t)
# 时间元组转时间戳
timestamp = time.mktime(t)
print(timestamp)
# time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=15, tm_sec=41, tm_wday=2, tm_yday=296, tm_isdst=0)
# 1571843741.0
# 获取时间戳
ts = time.time()
# 时间戳转时间元组
# 方法一
print('法一:',time.localtime(ts))
# 方法二
print('法二:',time.gmtime(ts))
# 两种方法的区别只有小时的输出不同,法一的小时是24小时制的,法二是12小时的
# time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=10, tm_sec=14, tm_wday=2, tm_yday=296, tm_isdst=0)
# time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=15, tm_min=10, tm_sec=14, tm_wday=2, tm_yday=296, tm_isdst=0)

2. 时间元组和字符串的互化

import time
# 字符串转时间元组
# 字符类型的时间
t1 = '2013-10-10 23:40:00'
# 转为时间元组,时间元组本身没有直接的用处,但它可以输出时间的年月日时分秒等
# 注意这里的字符串除了%Y %m %d %H %M %S分别代表字符串中的年月日时分秒,
# 这里的格式必须和字符串一模一样,由于字符串中间有空格,它也不能少
timeArray = time.strptime(t1, "%Y-%m-%d %H:%M:%S")
print('并没有直接的用处:', timeArray)
print('输出年:', timeArray.tm_year)
print('输出月:', timeArray.tm_mon)
print('输出日:', timeArray.tm_mday)
print('输出时:', timeArray.tm_hour)
print('输出分:', timeArray.tm_min)
print('输出秒:', timeArray.tm_sec)
# 当用%Y时表示的是年份的全称,当用%y时表示简称,
# 月份和小时没有这种用法,它们只用小写,时分秒的貌似只用大写
t2 = '19/09/05 22/16'
timeArray = time.strptime(t2, "%y/%m/%d %H/%M")
print(timeArray)
# 并没有直接的用处: time.struct_time(tm_year=2013, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=40, tm_sec=0, tm_wday=3, tm_yday=283, tm_isdst=-1)
# 输出年: 2013
# 输出月: 10
# 输出日: 10
# 输出时: 23
# 输出分: 40
# 输出秒: 0
# time.struct_time(tm_year=2019, tm_mon=9, tm_mday=5, tm_hour=22, tm_min=16, tm_sec=0, tm_wday=3, tm_yday=248, tm_isdst=-1)
# 时间元组转字符串
ts = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
print(ts)
# 2019/09/05 22:16:00

二 字符串与时间戳

字符串与时间戳不能直接转化,要通过时间元组来完成,时间元组是中介.

转化图:

三 时间的加减用法

时间元组不能加减,要用datetime格式的时间才能加减.下面是字符串转为datetime后,进行时间加减运算.

import datetime
start = '2019-07-28 00:00:08'
end = '2019-07-29 00:50:03'
# 先将字符串转化为时间格式
a = datetime.datetime.strptime(start, "%Y-%m-%d %H:%M:%S")
b = datetime.datetime.strptime(end, "%Y-%m-%d %H:%M:%S")
print(a,b)
# 只能直接计算秒和天,其它的不能
# seconds获得的秒只是时间差中的小时、分钟和秒部分的和,并没有包含时间差的天数
print((b-a).seconds)
# total_seconds来获取准确的时间差,并将时间差转换为秒
print((b-a).total_seconds())
# 如果不够一天,会输出0
print((b-a).days)
# 时间相加
c = a + datetime.timedelta(hours=5,seconds=68)
d = a - datetime.timedelta(days=69,minutes=89)
print(c,d)
# 2019-07-28 00:00:08 2019-07-29 00:50:03
# 2995
# 89395.0
# 1
# 2019-07-28 05:01:16 2019-05-19 22:31:08

到此这篇关于Python中三种时间格式转换的方法的文章就介绍到这了,更多相关Python 时间格式转换内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python中有关时间日期格式转换问题

    每次遇到pandas的dataframe某列日期格式问题总会哉坑,下面记录一下常用时间日期函数.... 1.字符串转化为日期 str->date import datetime date_str = '2006-01-03' date_ = datetime.datetime.strptime(date_str,'%Y-&m-%d') 这是单个字符串的转化,其中"%Y-%m-%d"表示日期字符串的格式,若date_str='2006/1/3',则可写为"%Y/%

  • 使用Python将字符串转换为格式化的日期时间字符串

    我正在尝试将字符串"20091229050936"转换为"2009年12月29日(UTC)" >>>import time >>>s = time.strptime("20091229050936", "%Y%m%d%H%M%S") >>>print s.strftime('%H:%M %d %B %Y (UTC)') 给 AttributeError: 'time.str

  • python正常时间和unix时间戳相互转换的方法

    本文实例讲述了python正常时间和unix时间戳相互转换的方法.分享给大家供大家参考.具体分析如下: 这段代码可以用来转换常规时间格式为unix时间戳,也可以将unix时间戳转换回来, 例如:1332888820 格式转换成 2012-03-28 06:53:40的形式 # -*- coding: utf-8 -*- import time def timestamp_datetime(value): format = '%Y-%m-%d %H:%M:%S' # value为传入的值为时间戳(

  • python 将日期戳(五位数时间)转换为标准时间

    5位数日期戳 读取 .mat 文件处理里面数据时,发现里面的日期数据全部都是 "5位数" 数字,很不解: 后来查到可以在excel中通过设置单元格调回标准日期格式,如下: 选中日期戳,右键选择 "格式化单元格(Format Cells)" 选择需要的日期格式,点击ok即可 通过代码转成标准日期 例如这个DataFrame中的日期,全部都是"日期戳"格式的,但我需要的是人能看懂的"标准日期": 确认起始日期 首先需拿一个&quo

  • Python时间戳使用和相互转换详解

    本文实例为大家分享了Python时间戳使用和相互转换的具体代码,供大家参考,具体内容如下 1.将字符串的时间转换为时间戳 方法: import time a = "2013-10-10 23:40:00" # 将其转换为时间数组 timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S") # 转换为时间戳 timeStamp = int(time.mktime(timeArray)) timeStamp == 13814196

  • Python时间戳与时间字符串互相转换实例代码

    复制代码 代码如下: #设a为字符串import timea = "2011-09-28 10:00:00" #中间过程,一般都需要将字符串转化为时间数组time.strptime(a,'%Y-%m-%d %H:%M:%S')>>time.struct_time(tm_year=2011, tm_mon=9, tm_mday=27, tm_hour=10, tm_min=50, tm_sec=0, tm_wday=1, tm_yday=270, tm_isdst=-1) #

  • Python 转换时间戳为指定格式日期

    目录 当前时间 实例1: 实例2: 指定时间戳 实例1: 实例2: 总结 我们将会启用到time库: 当前时间 实例1: import time # 获得当前时间时间戳 now = int(time.time()) #转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S" timeArray = time.localtime(now) otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)

  • Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)

    Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块. 关于时间戳的几个概念 时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量. 时间元组(struct_time),包含9个元素. time.struct_time(tm_year=2017, tm_mon=10, tm_mday=1, tm_hour=14, tm_min=21, tm_sec=57, tm_wday=6, tm_yday=274, tm_isdst=0) 时间格式字

  • 使用python将时间转换为指定的格式方法

    时间处理是在进行数据挖掘时很重要的一个方面,在参加比赛的时候很多比赛训练集给的时间和你最终要提交的时间格式是不同的. 我把我遇到的一种情况总结如下: 首先,题目给的格式是2016-09-10 4:23:21,而想要你提交的格式是2016-09-10-4-2(精确到每十分钟).在处理时间数据的时候一般都是将时间字符串转换成datatime对象,或者pandas的Timestamp.可以首先把字符串转换成一个datatime类型,然后用strftime()把datatime类型的时间转换为需要的格式

  • Python中三种时间格式转换的方法

    目录 一 时间元组 二 字符串与时间戳 三 时间的加减用法 一 时间元组 1. 时间元组和时间戳的互化 import time,datetime # 获取当前时间的时间元组 t = time.localtime() print(t) # 时间元组转时间戳 timestamp = time.mktime(t) print(timestamp) # time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=15,

  • Python time三种时间转换小结

    目录 复习回顾 1. time模块源代码描述 2. time模块核心对象 3. 时间戳与结构化时间转换 4. 字符串时间与结构化时间转换 总结 复习回顾 我们已经对Python内置模块-time中知道时间格式目前有三种. 时间戳 结构化时间 字符串时间 本期,我们将继续深入对time模块中所涉及的三种时间进行学习,Let's go~ 1. time模块源代码描述 我们通过import time导入time后,可以通过长按CTRL键后查看到time.pyi文件查看time.pyi文件,我们会得知如

  • Python中三种条件语句示例介绍

    目录 if if…else if…elif…else 总结 if """ 条件语句: if if...else if...elif...else if 语句的格式: if 条件: 条件成立要执行的语句 条件:运算符构成---> bool """ print(1) print(2) result = input('请输入(y/n):') if result == 'y': print('good~') print('-'*20) if…els

  • python中三种输出格式总结(%,format,f-string)

    目录 python的三种输出格式 1. % (不推荐使用) 2. format 3. f-string 对比 总结 python的三种输出格式 环境:pycharm + python3.8 1. % (不推荐使用) 格式: 格式字符串% (输出项1,输出项2,…输出项n). %c 字符 %s 字符串 %d 带符号的整数(10) %o 带符号的整数(8) %x或者 %X 带符号的整数(16) %f 或者 %F 浮点数字 使用: 案例一 num1 = 20 num2 = 30 print('num1

  • Python中xml和dict格式转换的示例代码

    在做接口自动化的时候,请求数据之前都是JSON格式的,Python有自带的包来解决.最近在做APP的接口,遇到XML格式的请求数据,费了很大劲来解决,解决方式是:接口文档拿到的是XML,在线转化为json格式(目的是拿到xml数据的模板),存放到json文件中,根据接口名去提取. github原文介绍:使用XML的Python模块感觉就像您在使用JSON 链接:https://github.com/martinblech/xmltodict 下载xmltodict(pip install xml

  • python中三种高阶函数(map,reduce,filter)详解

    map(function,seq[,seq2]) 接收至少两个参数,基本作用为将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列 返回一个可迭代的map对象 function:函数对象 py2中可为None,作用等同于zip() 如: py3中不可为None,None是不可调用.不可迭代对象 seq:可迭代对象,可以传一个或多个 # 传一个: def func(i):return i*2 print([i for i in map(func,[1,'2'])]) # [2,'22']

  • python中日期和时间格式化输出的方法小结

    本文实例总结了python中日期和时间格式化输出的方法.分享给大家供大家参考.具体分析如下: python格式化日期时间的函数为datetime.datetime.strftime():由字符串转为日期型的函数为:datetime.datetime.strptime(),两个函数都涉及日期时间的格式化字符串,这里提供详细的代码详细演示了每一个参数的使用方法及范例. 下面是格式化日期和时间时可用的替换符号 %a 输出当前是星期几的英文简写 >>> import datetime >&

  • 详解Python用三种方式统计词频的方法

    三种方法: ①直接使用dict ②使用defaultdict ③使用Counter ps:`int()`函数默认返回0  ①dict text = "I'm a hand some boy!" frequency = {} for word in text.split(): if word not in frequency: frequency[word] = 1 else: frequency[word] += 1  ②defaultdict import collections f

  • 对Python中9种生成新对象的方法总结

    先定义一个类: class Point: def __init__(self, x, y): self.x = x self.y = y 下面我们使用9种方法来生成新的对象: point1 = Point(1, 2) point2 = eval("{}({}, {})".format("Point", 1, 2)) point3 = globals()["Point"](1, 2) point4 = locals()["Point&qu

  • Python中五种实现字符串反转的方法

    目录 前言 方法1 方法2 方法3 方法4 方法5 前言 一道题目是实现一个反转字符串的函数,具体如下: 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题. 我们可以假设数组中的所有字符都是 ASCII 码表中的可打印字符. 示例 1: 输入:["h","e","l","l","

随机推荐