python datetime 和时间戳互相转换问题

python datetime 和时间戳互转

import datetime, time

now = datetime.datetime.now()

now_time = int(time.mktime(now.timetuple()))   #datetime 转时间戳

now = datetime.datetime.fromtimestamp(now_time)  #时间戳转datetime
# datetime 当天8点

datetime(now.year, now.month, now.day, 8)
now = 0点-8点  int(now-now % 86400) + time.timezone是前一天的零点

Python time和datetime时间戳和时间字符串相互转换

Python time和datetime时间戳和时间字符串相互转换
时间戳是指格林威治时间1970年01月01日00时00分00秒开始计算所经过的秒数,是一个浮点数。

time和datetime都是Python中的内置模块(不需要安装,直接可以使用),都可以对时间进行获取,对时间格式进行转换,如时间戳和时间字符串的相互转换。

现在我们就使用这两个模块来对时间格式进行转换。

一、time获取当前时间

import time
print(time.time())
print(time.localtime())
print(time.localtime(time.time()))

运行结果:

1559120608.5015295
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=29, tm_hour=17, tm_min=3, tm_sec=28, tm_wday=2, tm_yday=149, tm_isdst=0)
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=29, tm_hour=17, tm_min=3, tm_sec=28, tm_wday=2, tm_yday=149, tm_isdst=0)

可以通过time.time()获取到当前的时间,默认是一个时间戳浮点数。

通过time.localtime()或time.localtime(time.time())都是获取到当前时间的struct_time,里面分别对应了当前时间的年、月、日、时、分、秒、一周的第几天(周一是0,0-6)、一年的第几天(从1开始,1-366)、夏时令(是夏时令1,不是0,不知道-1)。

二、time将时间戳转换成时间字符串

# 时间戳转换成时间字符串
time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
print(time_str)

运行结果:

2019-05-29 17:08:35

三、time将时间字符串转换成时间戳

print(time.strptime(time_str, '%Y-%m-%d %H:%M:%S'))
# 时间字符串转换成时间戳
time_stamp = time.mktime(time.strptime(time_str, '%Y-%m-%d %H:%M:%S'))
print(time_stamp)

运行结果:

time.struct_time(tm_year=2019, tm_mon=5, tm_mday=29, tm_hour=17, tm_min=8, tm_sec=35, tm_wday=2, tm_yday=149, tm_isdst=-1)
1559120915.0

可以看到,不管是将时间戳转换成时间字符串,还是将时间字符串转换成时间戳,time模块都是通过struct_time来过渡的,也就是说,都需要先转换成struct_time,再用struct_time转换成想要的结果。

四、datetime获取当前时间

from datetime import datetime
print(datetime.now())
print(datetime.now().timetuple())

运行结果:

2019-05-29 17:22:37.343784
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=29, tm_hour=17, tm_min=22, tm_sec=37, tm_wday=2, tm_yday=149, tm_isdst=-1)

可以通过datetime.now()获取到当前的时间,默认是一个datetime时间对象,样式是一个时间字符串的样式。

注意:导包时导入的是datetime包下的datetime模块。导包方式不同,使用时也不同。

通过datetime对象的timetuple()方法可以获取到时间的struct_time。

五、datetime将datetime对象转换成时间字符串和时间戳

# datetime对象转换成时间字符串
datetime_str = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')
print(datetime_str)
# datetime对象转换成时间戳
datetime_stamp = datetime.timestamp(datetime.now())
print(datetime_stamp)

运行结果:

2019-05-29 17:22:37
1559121757.343784

六、datetime将时间字符串转换成时间戳

# 时间字符串转datetime对象,再转时间戳
datetime_stamp2 = datetime.timestamp(datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S'))
print(datetime_stamp2)

运行结果:

1559121757.0

七、datetime将时间戳转换成时间字符串

# 时间戳转datetime对象,再转时间字符串
datetime_str2 = datetime.strftime(datetime.fromtimestamp(datetime_stamp2), '%Y-%m-%d %H:%M:%S')
print(datetime_str2)

运行结果:

2019-05-29 17:22:37

在使用datetime进行时间戳和时间字符串之间的转换时,都是先转换成datetime对象,然后再做进一步的转转。

在实际工作中,我们也可以同时使用time和datetime两个模块,它们是可以混合使用的。

到此这篇关于python datetime 和时间戳互转的文章就介绍到这了,更多相关python datetime转时间戳内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python基于datetime或time模块分别获取当前时间戳的方法实例

    python的时间模块生成时间戳的方法是非常简单的,因为最近频繁用到了时间戳功能,这里简单总结了一下日常使用最为频繁的两个时间模块各自生成当前时间戳的方法,很简单,具体如下: now_time=str(datetime.datetime.now().strftime('%Y%m%d')) nowTime=str(time.strftime('%Y%m%d',time.localtime(time.time()))) print 'now_time:',now_time print 'nowTim

  • 使用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 timestamp和datetime之间转换详解

    做开发中难免时间类型之间的转换, 最近就发现前端js和后端django经常要用到这个转换, 其中jsDate.now()精确到毫秒,而Python中Datetime.datetime.now()是精确到微秒的. 1. 字符串日期时间转换成时间戳 # '2015-08-28 16:43:37.283' --> 1440751417.283 # 或者 '2015-08-28 16:43:37' --> 1440751417.0 def string2timestamp(strValue): try

  • python中时间转换datetime和pd.to_datetime详析

    前言 我们在python对数据进行操作时,经常会选取某一时间段的数据进行分析.这里为大家介绍两个我经常用到的用来选取某一时间段数据的函数:datetime( )和pd.to_datetime( ). (一)datetime( ) (1)获取指定的时间和日期.datetime(%Y,%m,%d,%H,%M,%S) datetime共有6个参数,分别代表的是年月日时分秒.其中年月日是必须要传入的参数,时分秒可以不传入,默认全为零. eg: (2)将Str和Unicode转化为datetimedate

  • 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 utc datetime转换为时间戳的方法

    最近python代码遇到了一个神奇的需求, 就是如果将python utc datetime转换为时间戳. 百度找到都是使用time.mktime(xxx) 但是看到官网文档里写 time.mktime(t) This is the inverse function of localtime() 而且亲测 这样将UTC datetime格式的转换完并不是utc时间戳. 这里会当作带时间戳的datetime来处理. 正确的做法是: import calendar calendar.timegm(t

  • Python中实现对Timestamp和Datetime及UTC时间之间的转换

    Python项目中很多时候会需要将时间在Datetime格式和TimeStamp格式之间转化,又或者你需要将UTC时间转化为本地时间,本文总结了这几个时间之间转化的函数,供大家参考. 一.Datetime转化为TimeStamp def datetime2timestamp(dt, convert_to_utc=False): ''' Converts a datetime object to UNIX timestamp in milliseconds. ''' if isinstance(d

  • Python datetime和unix时间戳之间相互转换的讲解

    python datetime和unix时间戳之间相互转换 1.代码: import time import datetime # 1.datetime转unix时间戳 # (1).逐个打印 n = datetime.datetime.now() #当前时间 a = n.timetuple() b = time.mktime(a) c = int(b) # (2).链式打印 r = int(time.mktime(datetime.datetime.now().timetuple())) # 2

  • python datetime 和时间戳互相转换问题

    python datetime 和时间戳互转 import datetime, time now = datetime.datetime.now() now_time = int(time.mktime(now.timetuple()))   #datetime 转时间戳 now = datetime.datetime.fromtimestamp(now_time)  #时间戳转datetime # datetime 当天8点 datetime(now.year, now.month, now.

  • python日期与时间戳的各种转换示例

    官方文档的示例中没有我们习惯的日期格式,查了很多博客转换日期和时间戳也都是大概的能得到结果的方式,常将 datetime 和 time 两个模块混用,个人觉得时间格式化不应该这么麻烦,还得用两个模块来支持?故而翻遍了源码,总结以下常用的几种日期和时间戳的转换方式. 以下主要有三个元素(时间字符串,格式,Unix时间戳),可将时间字符串转为另一种时间格式,或将时间字符串转为时间戳,或将时间戳转为时间字符串. datetime 和 time 两个模块,任意一个都能转换完成. 以下两个模块均列出示例:

  • C# DateTime与时间戳转换实例

    C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳. 1. 什么是时间戳 首先要清楚JavaScript与Unix的时间戳的区别: JavaScript时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数. Unix时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数. 可以看出JavaScrip

  • Python用模块pytz来转换时区

    前言 最近遇到了一个问题:我的server和client不是在一个时区,server时区是EDT,即美国东部时区,client,就是我自己的电脑,时区是中国标准时区,东八区.处于测试需要,我需要向server发送一个时间,使得server在这个时间戳去执行一些动作.这个时间戳通常是当前时间加2分钟或者几分钟. 通常美东在夏令时时,和我们相差12小时,所以直接减掉这12小时,然后再加两分钟,可以实现发送基于server的时间戳,但是只有一半时间是夏令时,所以考虑还是基于时区来做.百度了一下,Pyt

  • Python基础学习之时间转换函数用法详解

    本文实例讲述了Python基础学习之时间转换函数用法.分享给大家供大家参考,具体如下: 前言 python的时间格式分为多种,几种格式之间的转换方法时常是我们遇到的而且是经常忘记的点,python不像php,时间字符串和datetime是一起的,只需要strtotime和date函数就可以相互转化.虽然网上已经有很多python时间转换的文章,但是由于作者本人经常做海外业务,需要各种时区之间的转换,所以这篇文章会对按时区转换各种时间格式做一个总结. 转换方法图示(图片转自网络): 一.字符串转时

  • Python Datetime模块和Calendar模块用法实例分析

    本文实例讲述了Python Datetime模块和Calendar模块用法.分享给大家供大家参考,具体如下: datetime模块 1.1 概述 datetime比time高级了不少,可以理解为datetime基于time进行了封装,提供了更多的实用的函数,datetime的接口更加的直观,更容易调用 1.2 模块中的类 datetime:同时有时间与日期 timedelta:表示时间间隔,即两个时间点的间隔:主要用于计算时间的跨度 tzinfo: 时区相关的信息 date : 只关注日期 2.

  • python datetime时间格式的相互转换问题

    具体代码如下所示: # 时间的替换 import time,datetime today = datetime.datetime.today() print('当前时间:',today) print('当前时间转换成整h整m整s:',today.replace(minute=0, second=0)) # 时间的加减 res1 = today + datetime.timedelta(days=1,minutes=60) print('增加的时间为res:',res1) res0 = datet

  • 解决python 两个时间戳相减出现结果错误的问题

    如下所示: 两个时间相差一整天,结果却是相差时间为零 !!!! 这里是使用错误, .seconds只会计算 小时分钟秒 部分之间的差值 在这里使用total_seconds() 才是计算两个时间戳之间的相差时间 补充:Python 时间字符串.时间戳之间的转换,时间的加减 1.字符串转时间戳 import time str_time = "20200713203740" time_temp = time.strptime(str_time, "%Y%m%d%H%M%S&quo

随机推荐