Python - 从当前GMT日期时间减去特定日期时间

时间:2017-12-22 20:16:20

标签: python-2.7 datetime

我正在尝试做一些数学时间,但我不确定如何做到这一点。我想减去一个特定的日期&从当前格林威治标准时间开始的时间(例如:2017-5-20 15:54:00)(例如:2017-12-22 20:06:27)。

关于我如何做到这一点的任何想法?

# import data into Python
with open(output_file2) as f:
    reader = csv.reader(f, delimiter="\t")
    d = list(reader)
# here, objects [0][4] and [0][5] would be, for instance: 15:54:00 and 2017-5-20
# , respectively

# UTC Time
os.system("date -u \"+%H:%M:%S %Y-%m-%d\" | gawk '{print \"  UTC Date & Time:  \", $1, \"\", $2}'")
# eg.: 20:06:27 2017-12-22

任何想法都会很棒!谢谢=)

更新:到目前为止我已尝试过:

UTC_time = datetime.datetime.utcnow().strftime("%H:%M:%S  %Y-%m-%d")
print '  UTC Date & Time:  ', UTC_time

time1 = d[0][4]
date1 = d[0][5]
mytime = time1, date1
time_difference = datetime.datetime.utcnow() - mytime
print "HELLO", time_difference

但我一直收到错误: TypeError:不支持的操作数类型 - :'datetime.datetime'和'tuple'

不确定我做错了什么......

1 个答案:

答案 0 :(得分:0)

您的mytime变量不是datetime.datetime对象,不能用于对其进行操作。而不是mytime = time1, date1你正在寻找更多符合

的内容
my_date_str = "{} {}".format(time1, date1)
mytime = datetime.datetime.strptime(my_date_str, "%H:%M:%S %Y-%m-%d")

请注意,尽管使用utcnow()生成的datetime.datetime对象不是时区识别的,但mytime也不是。{1}}。因此,两者之间的任何数学运算都是纯时钟数学,不考虑时区。

如果您需要时区支持,请查看pytzPendulum,或者如果他们不适合您,可以找另一个。