2015-07-10 71 views
-3

我在python中有一个来自数据库(postgreSQL)的输出。时间编码为时间戳。我们需要能够将时间转换成几分钟。如何将时间对象转换为Python中的分钟数

2015年7月9日13:45:08.266520 + 00:00

例如,这将是825分钟。

我与datetime.datetime格式有问题,我只需要能够放下一切,但小时和分钟,然后转换为分钟。

time_format = '%H:%M' 

time1 = datetime.strptime('2015-07-09 13:45:08.266520+00:00', time_format) 

因此,我试图按照一定的时间间隔对一个大的列表进行排序。我需要这些时间只需几分钟,以便对他们进行任何数学计算,我不想再惹上时间了。这就是为什么我试图通过花60小时+ 60分钟将他们变成几分钟。由于这是一种时间格式,我无法做到这一点。

+1

*“有问题”* - 什么问题,以及什么代码? – jonrsharpe

+1

这是825分钟吗? –

+1

你好,欢迎来到StackOverflow。请花一些时间阅读帮助页面,尤其是名为[“我可以询问什么主题?”(http://stackoverflow.com/help/on-topic)和[“我应该问什么类型的问题避免问?“](http://stackoverflow.com/help/dont-ask)。更重要的是,请阅读[Stack Overflow问题清单](http://meta.stackexchange.com/q/156810/204922)。您可能还想了解[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。 –

回答

0

我明白你想要做什么。所以你想把你从数据库中得到的时间戳转换成几分钟。基本上0点会是0,1点会是60,依此类推。

时间戳是标准的,所以一个肮脏的黑客你可以做的只是拉相关信息的索引,你想要的并从那里去。

time = "2015-07-09 13:45:08.266520+00:00" 
data = time[11:18] 
print data //Will be 13:45:08 

然后你可以从那里做数据操作。

2

的。减去从DateTime在时间上与参考点DateTime,提取得到的由60

TimeDelta除(你没有给任何代码total_seconds,所以我不能给任何代码基于你的。)

1

dateutil需要很多头痛的了解析ISO 8601邮票:

>>> import dateutil.parser 
>>> dateutil.parser.parse('2015-07-09 13:45:08.266520+00:00') 
datetime.datetime(2015, 7, 9, 13, 45, 8, 266520, tzinfo=tzutc()) 

既然你想要的答案是3,088,825分钟,代数,必须寻求从一个划时代标志偏移:

>>> import datetime as dt 
>>> mark=dateutil.parser.parse('2015-07-09 13:45:08.266520+00:00')-dt.timedelta(minutes=825) 
>>> mark 
datetime.datetime(2015, 7, 9, 0, 0, 8, 266520, tzinfo=tzutc()) 

所以现在使用mark为基础来计算分钟偏移。 (您可能的意思是忽略基准时间标记中的微秒)

相关问题