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

2024-04-23

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

2014-12-22T08:46:10.000Z

我使用 dateutil 解析器将其转换为日期时间

launch_time = parser.parse(instance.launch_time)

所以我在转换后得到午餐时间,如下所示:

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

我想将这个启动时间与当前时间进行比较,看看这个实例已经运行了多长时间。

我得到 current_time :

current_time = datetime.datetime.now()

我是这样理解的:

2014-12-22 11:46:10.527010

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

def timeDiff(launch_time, current_time):
    running_time = current_time - launch_time
    return running_time.seconds/60

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

类型错误:无法减去偏移天真和偏移感知的日期时间

我认为这两个时间戳之间有明显的区别。我需要准确比较日期和时间以查看它已经运行了多长时间。我找不到合适的方法来解决这个问题。任何想法表示赞赏!


您可以指定您想要的时区now()像下面这样:

current_time = datetime.datetime.now(launch_time.tzinfo)

然后你的减法应该起作用,因为两个时间都会意识到时区。

编辑:我应该注意,你可以放入任何你想要的时区对象now()它会工作得很好。now()会将时间转换为您经过的任何时区。重要的部分是简单地确保如果您要添加/减去日期时间对象,它们都具有时区(或者它们都缺少时区)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中比较EC2实例的启动时间和当前时间 的相关文章

随机推荐