GVKun编程网logo

如何在Python中获取timedelta的总时数和分钟数(python获取timestamp)

36

本文将介绍如何在Python中获取timedelta的总时数和分钟数的详细情况,特别是关于python获取timestamp的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主

本文将介绍如何在Python中获取timedelta的总时数和分钟数的详细情况,特别是关于python获取timestamp的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于python datetime.timedelta进入列表、python time + timedelta等效、python – datetime和timedelta、python – Timedelta没有定义的知识。

本文目录一览:

如何在Python中获取timedelta的总时数和分钟数(python获取timestamp)

如何在Python中获取timedelta的总时数和分钟数(python获取timestamp)

如何将大于24小时的timedelta返回或转换为包含总时数和分钟数(例如26:30)而不是“ 1 day,2:30”的对象?

python datetime.timedelta进入列表

python datetime.timedelta进入列表

就像我在评论中写道的那样,您必须转换datetime.timedelta对象:

import datetime

new_time = datetime.time(minute=7)
print(new_time)
# >> 00:07:00
print(type(new_time))
# >> <class 'datetime.time'>

new_time_list: list = [new_time]
print(new_time_list)
# >> ['00:07:00']
print(type(new_time_list[0]))
# >> <class 'datetime.time'>

new_time_list: list = [str(new_time)]
print(new_time_list)
# >> ['00:07:00']
print(type(new_time_list[0]))
# >> <class 'str'>

new_time_list = [new_time.isoformat()]
print(new_time_list)
# >> ['00:07:00']
print(type(new_time_list[0]))
# >> <class 'str'>

输入您的代码

from datetime import datetime

list_dt_obj: list  = []
list_str: list = []
date_now = datetime.now()
now = date_now.strftime("%H:%M")
timeB = datetime.strptime(now,"%H:%M")

temps_arret_aller = ["00:00","00:07","00:14","00:21"]

for temp in temps_arret_aller:
    timeA = datetime.strptime(temp,"%H:%M")

    newTime = timeA - timeB

    print(newTime)  # print datetime.timedelta obj: output as string
    list_dt_obj.append(newTime) # add datetime.timedelta obj
    list_str.append(str(newTime))  # toString

print(list_dt_obj)  # list of datetime.timedelta obj
print(list_str)  # list of strings

# output:
# -1 day,10:19:00
# -1 day,10:26:00
# -1 day,10:33:00
# -1 day,10:40:00
# [datetime.timedelta(-1,37140),datetime.timedelta(-1,37560),37980),38400)]
# ['-1 day,10:19:00','-1 day,10:26:00',10:33:00',10:40:00']
,

打印项目时,将在该项目上调用.__str__()。当您打印容器时,.__repr__()会在容器中的每个项目上被调用。

import datetime

time_delta = datetime.timedelta(seconds=1000)
print(time_delta)  # 0:16:40
print(time_delta.__str__())  # 0:16:40
print(time_delta.__repr__())  # datetime.timedelta(seconds=1000)

my_list = [time_delta,time_delta]
print(my_list)  # [datetime.timedelta(seconds=1000),datetime.timedelta(seconds=1000)]
print([str(delta) for delta in my_list])  # ['0:16:40','0:16:40']

从最后一行可以看到,您可以手动调用容器中每个项目的str()来获取所需的内容。

python time + timedelta等效

python time + timedelta等效

我正在尝试做这样的事情:

time() + timedelta(hours=1)

但是,Python不允许这样做,这显然是有充分理由的。

有没有人有一个简单的解决方法?

python – datetime和timedelta

python – datetime和timedelta

我的时区是UTC 5.

所以,当我做datetime.datetime.Now()时,它给出:

2012-07-14 06:11:47.318000
#note its 6AM

我想从它减去5个小时,以便它等于datetime.datetime.utcNow()所以我做了:

import time
from datetime import datetime,timedelta
dt = datetime.Now() - timedelta(hours=time.timezone/60/60)
print dt
#gives 2012-07-14 11:11:47.319000

"""
Here 11 is not the PM its AM i double check it by doing
print dt.strftime('%H:%M:%s %p')
#gives 11:11:47 AM
"""

你看到它不是减去5小时而是在日期时间增加5小时?
我在这里做错了吗?

最佳答案
你正在创造一个负时间. time.timezone的值为负数:

>>> import time
>>> time.timezone
-36000

在这里,我是UTC 10,所以你的代码变成了:

>>> from datetime import timedelta
>>> print timedelta(hours=time.timezone/60/60)
-1 day,14:00:00

python – Timedelta没有定义

python – Timedelta没有定义

下面是我正在处理的代码.从我可以告诉的没有问题,但是当我尝试运行这段代码时,我收到一个错误.
import os 
import datetime

def parSEOptions():

    import optparse
    parser = optparse.OptionParser(usage= '-h')
    parser.add_option('-t','--type',\
                      choices= ('Warning','Error','information','All'),\
                      help= 'The type of error',default= 'Warning')
    parser.add_option('-g','--goback',\
                      type= 'string')
    (options,args) = parser.parse_args()
    return options

options = parSEOptions() Now = datetime.datetime.Now() subtract = timedelta(hours=options.goback) difference = Now - subtract

if options.type=='All' and options.goback==24:
    os.startfile('logfile.htm')

else: 
    print
    print 'Type =',options.type,print
    print 'Go Back =',options.goback,'hours'
    print difference.strftime("%H:%M:%s %a,%B %d %Y")
    print

错误如下:

Traceback (most recent call last):
  File "C:\Python27\Lib\SITE-P~1\PYTHON~2\pywin\framework\scriptutils.py",line 325,in RunScript
    exec codeObject in __main__.__dict__
  File "C:\Users\user\Desktop\Python\python.py",line 19,in <module>
    subtract = timedelta(hours=options.goback)
NameError: name 'timedelta' is not defined

任何帮助将不胜感激.

解决方法

您已导入datetime,但未定义timedelta.你想要:
from datetime import timedelta

要么:

subtract = datetime.timedelta(hours=options.goback)

此外,您的goback参数被定义为一个字符串,但是您将其传递给timedelta作为小时数.您需要将其转换为整数,或者更好地仍然将您的选项中的type参数设置为int.

今天关于如何在Python中获取timedelta的总时数和分钟数python获取timestamp的分享就到这里,希望大家有所收获,若想了解更多关于python datetime.timedelta进入列表、python time + timedelta等效、python – datetime和timedelta、python – Timedelta没有定义等相关知识,可以在本站进行查询。

本文标签: