Python关于时间日期有两个库datetime和time,于是我们要在四种格式之间转换:
datetime.datetime对象 datetime.datetime.now()
time.struct_time对象 time.localtime()
字符串 "2010-12-04T10:30:53"
时间戳 1291433453 (一般我们不关心微秒)
列一下它们的转换方法:
dt = datetime.datetime(2010, 12, 4, 10, 30, 53)
dt = datetime.datetime.strptime("2010-12-04T10:30:53", "%Y-%m-%dT%H:%M:%S")
dt.strftime("%Y-%m-%dT%H:%M:%S") -> "2010-12-04T10:30:53"
或者 dt.isoformat().split(".").pop(0) -> "2010-12-04T10:30:53"
dt = datetime.datetime.fromtimestamp(1291433453)
(?) dt -> 1291433453
t = time.localtime(1291433453)
t = dt.timetuple()
t = time.strptime("2010-12-04T10:30:53", "%Y-%m-%dT%H:%M:%S")
t.strftime("%Y-%m-%dT%H:%M:%S") -> "2010-12-04T10:30:53"
long( time.mktime(t) ) -> 1291433453
(?) t -> dt
可以看出,Python没有提供直接的time.struct_time对象到datetime.datetime对象的转换,也没有直接提供datetime.datetime对象到时间戳的转换。另外,Python的两个strftime
,strptime中都没有时间戳的格式化符号。
对time.struct_time对象到datetime.datetime对象的转换,很容易想到通过字符串形式过渡一下:
dt = datetime.datetime.strptime(t.strftime("%Y-%m-%dT%H:%M:%S"), "%Y-%m-%dT%H:%M:%S")
更好的方式应该是这样
dt = datetime.datetime(*tuple(t)[:6])
对于datetime.datetime对象到时间戳的转换,常用做法是通过time.struct_time对象过渡:
long(time.mktime(dt.timetuple()))
坏处是要同时用到datetime和time两个模块。
其实可以在datetime内部解决,现在给一个三种格式转为时间戳的方法:
def to_timestamp(mytime, format="%Y-%m-%dT%H:%M:%S"):
import time
from datetime import datetime
if isinstance(mytime, time.struct_time):
return long(time.mktime(mytime))
elif isinstance(mytime, str):
mytime = datetime.strptime(mytime, format)
if isinstance(mytime, datetime):
#得到一个与时间戳相等的datetime.timedelta对象
delta = mytime - datetime(1970,1,1)
utc = delta.days * 86400L + delta.seconds
#上面求得delta是一个localtime操作,把时区也考虑进去了,我们要还原
return utc - 8 * 3600
long(dt.strftime("%s"))
分享到:
相关推荐
由于python库中没有函数直接进行转换,因此我写了本篇文章。 2、测试源数据如下 3、代码如下 df = pd.read_excel(r"C:\Users\黄伟\Desktop\chinese_english.xlsx") display(df) def func(x): year = x.split("年...
主要介绍了python中有关时间日期格式转换问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
本文实例讲述了python正常时间和unix时间戳相互转换的方法。分享给大家供大家参考。具体分析如下: 这段代码可以用来转换常规时间格式为unix时间戳,也可以将unix时间戳转换回来, 例如:1332888820 格式转换成 ...
主要介绍了Python 日期与时间转换的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
erajp-将日期转换为 日据时代年号
主要介绍了python 将日期戳(五位数时间)转换为标准时间的实现方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
今天小编就为大家分享一篇Python日期时间对象转换为字符串的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
用C语言编写的用于Python的快速ISO8601日期时间解析器。由于它是作为C模块编写的,所以它比其他Python库快得多。 用Python 2.7 3.4 3.5测试。
您可能感兴趣的文章:sql语句中如何将datetime格式的日期转换为yy-mm-dd格式将WMI中的DateTime类型转换成VBS时间的函数代码LINQ字符串向datetime 转换时失败的处理方法Sql中将datetime转换成字符串的
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。 Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。
Python中关于时间、日期的处理库有三个:time、datetime和Calendar,其中datetime又有datetime.date、datetime.time、datetime.datetime三个类。而时间又可以分为时间戳、本地时间和UTC时间(世界标准时间)。是不是...
将数字转化成时间格式 from dateutil.parser import parse a=20170825 b=str(a) c=parse(b) print(c) 2017-08-25 00:00:00 将时间按照天排列,转化为一个数字,用来做时间序列分析 from matplotlib.pylab ...
在Python中,日期和时间处理是开发中常见的任务之一。标准库中的`datetime`模块提供了日期和时间操作的基本功能,包括创建日期时间对象、日期时间比较、格式化等。`time`模块则专注于处理时间相关操作,如获取当前...
python使用datetime模块进行时间、日期、时间戳的转换
time模块中时间表现的格式主要有三种: a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b、struct_time时间元组,共有九个元素组。 c、format time 格式化时间,已格式化的结构使...
在使用Python进行数据分析时,经常会遇到时间日期格式处理和转换,特别是分析和挖掘与时间相关的数据,比如量化交易就是从历史数据中寻找 股价的变化规律。 时间序列(Time series)数据是非常重要的数据类型,时间...
主要介绍了python中时间、日期、时间戳的转换的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧