Python:从数字(历元时间)中获取日期时间(带有时区信息),并将其转换为特定日期格式的字符串

Python:从数字(历元时间)中获取日期时间(带有时区信息),并将其转换为特定日期格式的字符串,python,python-3.x,datetime,Python,Python 3.x,Datetime,当从互联网上抓取数据时,我得到的是一个数字作为响应,而不是日期时间字符串。以下是几个例子: 1508486400 -- instead of "2017, 20 Oct 10:00:00" 1510974000 -- instead of "2017, 18 Nov 4:00:00" 1388664000 -- instead of "2014, 02 Jan 13:00:00" 我想将这些数字转换为相应的日期,格式为“dd/mm/yyyy”。虽然保留时区不是强制要求,但如果

当从互联网上抓取数据时,我得到的是一个数字作为响应,而不是日期时间字符串。以下是几个例子:

1508486400   --  instead of "2017, 20 Oct 10:00:00"
1510974000   --  instead of "2017, 18 Nov 4:00:00"
1388664000   --  instead of "2014, 02 Jan 13:00:00"
我想将这些数字转换为相应的日期,格式为
“dd/mm/yyyy”
。虽然保留时区不是强制要求,但如果我可以根据日期所属的时区获取字符串,那就更好了


我试图从数字中提取的日期属于
“CAT+2:00:00”
时区。

您拥有的时间是(也称为Epoch或POSIX时间)。可以将其转换为对象,然后将其格式化为:

>>> from datetime import datetime

>>> my_datetime = datetime.fromtimestamp(1508486400)
>>> my_datetime.strftime('%d/%m/%Y')
'20/10/2017'
编辑:根据您提到的所需时间,看起来您希望时间处于“CAT+2:00:00”时区。为此,您可以使用时区为“非洲/哈拉雷”的模块:

>>从datetime导入datetime
>>>进口皮茨
>>>my_datetime=datetime.fromtimestamp(1508486400,tz=pytz.timezone('Africa/Harare'))
#将日期时间对象保存为:
#datetime.datetime(2017,10,20,10,0,tzinfo=)
>>>my_datetime.strftime(“%d/%m/%Y”)
'20/10/2017'
您可以使用pytz获得所有时区的列表。所有时区


还可以看看wiki。

您拥有的时间是(也称为Epoch或POSIX时间)。可以将其转换为对象,然后将其格式化为:

>>> from datetime import datetime

>>> my_datetime = datetime.fromtimestamp(1508486400)
>>> my_datetime.strftime('%d/%m/%Y')
'20/10/2017'
编辑:根据您提到的所需时间,看起来您希望时间处于“CAT+2:00:00”时区。为此,您可以使用时区为“非洲/哈拉雷”的模块:

>>从datetime导入datetime
>>>进口皮茨
>>>my_datetime=datetime.fromtimestamp(1508486400,tz=pytz.timezone('Africa/Harare'))
#将日期时间对象保存为:
#datetime.datetime(2017,10,20,10,0,tzinfo=)
>>>my_datetime.strftime(“%d/%m/%Y”)
'20/10/2017'
您可以使用pytz获得所有时区的列表。所有时区


还可以看看wiki。

如果您使用time()函数,它是自1970年1月1日12:00am以来的滴答数。

如果您使用time()函数,它是自1970年1月1日12:00am以来的滴答数。

您可以使用
utcfromtimestamp()
datetime
转换
timestamp
yyyy/mm/dd
格式:

import datetime

t = "1508486400"
print(datetime.datetime.utcfromtimestamp(int(t)).strftime('%Y-%m-%d'))

如果您还想获得时间,请在
strftime
方法中使用
'%Y-%m-%d%H:%m:%S'
。这将帮助您从
strftime

获取所需格式。您可以使用
utcfromtimestamp()
datetime
timestamp
转换为
yyyy/mm/dd
格式:

import datetime

t = "1508486400"
print(datetime.datetime.utcfromtimestamp(int(t)).strftime('%Y-%m-%d'))

如果您还想获得时间,请在
strftime
方法中使用
'%Y-%m-%d%H:%m:%S'
。这将帮助您从
strftime

获取所需格式,这是一个
datetime.fromtimestamp(1508486400)
->
datetime.datetime(2017,10,20,9,0)
@BhargavRao我认为这可能是一个好问题,因为我找不到任何关于将epochtime转换为带有时区信息的
datetime
的问题。虽然这个问题需要一些编辑当然,@Moinuddin,一定要编辑这篇文章,让它变得更好!请记住,如果一个问题是重复的,并不一定意味着它是一个坏帖子。它将(并且应该)保持为指向目标的路标。它是一个
datetime.fromtimestamp(1508486400)
->
datetime.datetime(2017,10,20,9,0)
@BhargavRao我认为这可能是一个好问题,因为我找不到任何关于将epochtime转换为带有时区信息的
datetime
的问题。虽然这个问题需要一些编辑当然,@Moinuddin,一定要编辑这篇文章,让它变得更好!请记住,如果一个问题是重复的,并不一定意味着它是一个坏帖子。它将(并且应该)继续作为指向目标的路标。