相关疑难解决方法(0)

查看日期时间之间是否已经过了24小时 - Python

我有以下方法:

# last_updated is a datetime() object, representing the last time this program ran
def time_diff(last_updated):
    day_period = last_updated.replace(day=last_updated.day + 1, 
                                      hour=1,
                                      minute=0,  
                                      second=0,
                                      microsecond=0)
    delta_time = day_period - last_updated
    hours = delta_time.seconds // 3600
    # make sure a period of 24hrs have passed before shuffling
    if hours >= 24:
        print "hello"
    else:
        print "do nothing"
Run Code Online (Sandbox Code Playgroud)

我想知道从那以后24小时过去了last_updated,我怎么能这样做last_updated呢?

python timezone datetime

14
推荐指数
1
解决办法
9016
查看次数

如何使用我自己的方法扩展Python的datetime.datetime?

我正在尝试datetime.datetime使用一些额外的方法来扩展Python的类.所以,例如我在做:

import datetime

class DateTime(datetime.datetime):
    def millisecond(self):
        return self.microsecond/1000
Run Code Online (Sandbox Code Playgroud)

但是如果我这样做的话

>>> d = DateTime(2010, 07, 11, microsecond=3000)
>>> print d.millisecond()
3
>>> delta = datetime.timedelta(hours=4)
>>> newd = d + delta
>>> print newd.millisecond()
AttributeError: 'datetime.datetime' object has no attribute 'millisecond'
Run Code Online (Sandbox Code Playgroud)

这显然是因为d + delta调用datetime.datetime.__add__()返回datetime.datetime对象的方法.

有什么办法可以让这个datetime.datetime对象转换成一个DateTime对象吗?或者我是否必须重新实现DateTime子类中的所有运算符才能返回正确的类型?

python datetime subclass

7
推荐指数
3
解决办法
7374
查看次数

比较EC2实例的启动时间和python中的当前时间

我从EC2实例中提取launch_time,它返回一个unicode字符串,如下所示:

2014-12-22T08:46:10.000Z

我使用dateutil解析器将其转换为datetime

launch_time = parser.parse(instance.launch_time)
Run Code Online (Sandbox Code Playgroud)

所以我转换后的午餐时间如下:

2014-12-22 08:46:10 + 00:00

我想将此启动时间与当前时间进行比较,以了解此实例运行了多长时间.

我得到current_time:

current_time = datetime.datetime.now()
Run Code Online (Sandbox Code Playgroud)

我这样得到它:

2014-12-22 11:46:10.527010

现在我有两个时间戳,我有这个功能

def timeDiff(launch_time, current_time):
    running_time = current_time - launch_time
    return running_time.seconds/60
Run Code Online (Sandbox Code Playgroud)

我预计结果将是180分钟(3小时).但我得到了这个错误:

TypeError:无法减去offset-naive和offset-aware datetimes

我认为这两个时间戳之间存在明显差异.我需要准确比较日期和时间,看看它运行了多长时间.我找不到合适的方法来解决这个问题.任何想法赞赏!

python datetime amazon-ec2 boto amazon-web-services

4
推荐指数
1
解决办法
5397
查看次数