用python将当前时间减去-GMT

用python将当前时间减去-GMT,python,datetime,Python,Datetime,我有一个时间是13:11:06,我想要-GMT(即-0530)。我可以通过简单地执行-5来减去它,方法是将字符串拆分为第一个数字(转换为int),然后减去它,然后重新联接。但我得到的格式是8:11:06,这是不正确的,因为它应该是08:11:06,其次,这是一个漫长的过程。有没有一个简单的方法可以让我的时间以-GMT格式(08:11:06) 这是我在得到日期时间后得到的-GMT时间 timesplithour = int(timesplit[1]) + -5 timesplitminute =

我有一个时间是13:11:06,我想要-GMT(即-0530)。我可以通过简单地执行-5来减去它,方法是将字符串拆分为第一个数字(转换为int),然后减去它,然后重新联接。但我得到的格式是8:11:06,这是不正确的,因为它应该是08:11:06,其次,这是一个漫长的过程。有没有一个简单的方法可以让我的时间以-GMT格式(08:11:06)

这是我在得到日期时间后得到的-GMT时间

timesplithour = int(timesplit[1]) + -5
timesplitminute = timesplit[2]
timesplitseconds = timesplit[3]
print timesplithour
print timesplitminute
print timesplitseconds
print timesplithour + ":" + timesplitminute + ":" + timesplitseconds
您可以使用Python库提供以下帮助:

import datetime

my_time = "13:11:06"
new_time = datetime.datetime.strptime("2016 " + my_time, "%Y %H:%M:%S") - datetime.timedelta(hours=5, minutes=30)
print new_time.strftime("%H:%M:%S")
这将打印:

 07:41:06
首先,它将字符串转换为
datetime
对象。然后,它创建一个
timedelta
对象,允许您从datetime对象中减去5小时30分钟。最后,它使用
strftime
将生成的日期时间格式化为相同格式的字符串。

您可以使用Python库提供以下帮助:

import datetime

my_time = "13:11:06"
new_time = datetime.datetime.strptime("2016 " + my_time, "%Y %H:%M:%S") - datetime.timedelta(hours=5, minutes=30)
print new_time.strftime("%H:%M:%S")
这将打印:

 07:41:06
首先,它将字符串转换为
datetime
对象。然后,它创建一个
timedelta
对象,允许您从datetime对象中减去5小时30分钟。最后,它使用strftime将结果datetime格式化为相同格式的字符串。

您可以使用

这样你可以很容易地减去你可以使用的

通过这种方式,您可以轻松地进行减法

使用模块:

输出

7 41 6 07:41:06 7. 41 6. 07:41:06 请注意,这减去问题中最初提到的5小时30分钟。如果您确实只想减去5小时,请使用
timedelta(小时=5)

使用模块:

输出

7 41 6 07:41:06 7. 41 6. 07:41:06
请注意,这减去问题中最初提到的5小时30分钟。如果确实只想减去5小时,请使用
timedelta(hours=5)

假设时间是一个datetime实例

import datetime as dt
t = datetime(2015,12,31,13,11,06)
#t.time() # gives time object. ie no date information

offset = dt.timedelta(hours=5,minutes=30) # or hours=5.5

t -= offset    

t.strftime(("%H:%M:%S") # output as your desired string
#'18:41:06'

假设时间是datetime实例

import datetime as dt
t = datetime(2015,12,31,13,11,06)
#t.time() # gives time object. ie no date information

offset = dt.timedelta(hours=5,minutes=30) # or hours=5.5

t -= offset    

t.strftime(("%H:%M:%S") # output as your desired string
#'18:41:06'

如果对象是datetime,而您不关心DST,那么您可以做的最简单的事情是

In [1]: from datetime import datetime

In [2]: curr = datetime.now()

In [3]: curr
Out[3]: datetime.datetime(2016, 3, 3, 9, 57, 31, 302231)

In [4]: curr.utcnow()
Out[4]: datetime.datetime(2016, 3, 3, 8, 57, 57, 286956)

如果对象是datetime,而您不关心DST,那么您可以做的最简单的事情是

In [1]: from datetime import datetime

In [2]: curr = datetime.now()

In [3]: curr
Out[3]: datetime.datetime(2016, 3, 3, 9, 57, 31, 302231)

In [4]: curr.utcnow()
Out[4]: datetime.datetime(2016, 3, 3, 8, 57, 57, 286956)

你试过什么吗?请在这里包括您尝试过的内容时间是什么类型的:a)字符串,b)日期时间,c)时区感知日期时间,d)其他什么?什么是timesplithour?那是一根绳子吗?约会时间?请包括变量的初始化。如果您想获取给定时区中的当前时间,请避免字符串操作,直接获取时间。例如:您尝试过什么吗?请在这里包括您尝试过的内容时间是什么类型的:a)字符串,b)日期时间,c)时区感知日期时间,d)其他什么?什么是timesplithour?那是一根绳子吗?约会时间?请包括变量的初始化。如果您想获取给定时区中的当前时间,请避免字符串操作,直接获取时间,例如:Thank@Martiin。这正是我需要的原因。谢谢@Martiin。这正是我需要的原因。