如何获取印度当前时间在python

kninwzqo  于 2023-02-21  发布在  Python
关注(0)|答案(3)|浏览(117)

我如何获得印度python中的当前时间戳?
我试过time.ctime()datetime.utcnow(),也试过datetime.now(),但它们都返回了与印度不同的时间。
上面的代码返回的时间不匹配的当前时间在我的电脑上。和时间在我的电脑是绝对正确的。

j7dteeu8

j7dteeu81#

from pytz import timezone 
from datetime import datetime

ind_time = datetime.now(timezone("Asia/Kolkata")).strftime('%Y-%m-%d %H:%M:%S.%f')
print(ind_time)
>>> "2020-08-28 11:56:37.010822"
am46iovg

am46iovg2#

可以在datetime模块中使用timedelta对象:
由于印度标准时间(IST)比协调世界时(UTC)早5.5小时,因此我们可以将UTC时间移动到5小时30分。

import datetime as dt

dt_India_naive = dt.datetime.utcnow() + dt.timedelta(hours=5, minutes=30)
dt_India_aware = dt.datetime.now(dt.timezone(dt.timedelta(hours=5, minutes=30)))

dt_UTC_naive = dt.datetime.utcnow()
dt_UTC_aware = dt.datetime.now(dt.timezone.utc)

max_len = len(max(['UTC Time', 'Indian Time'], key=len))

print(f"{'UTC Time'   :<{max_len}} - {dt_UTC_aware:%d-%b-%y %H:%M:%S}")
print(f"{'Indian Time':<{max_len}} - {dt_India_aware:%d-%b-%y %H:%M:%S}")

# Both offset-naive and offset-aware will provide same results in this sitatuiion

结果:

UTC Time    - 20-Feb-23 03:29:12
Indian Time - 20-Feb-23 08:59:12
rekjcdws

rekjcdws3#

你可以用pytz来做:

import datetime,pytz

dtobj1=datetime.datetime.utcnow()   #utcnow class method
print(dtobj1)

dtobj3=dtobj1.replace(tzinfo=pytz.UTC) #replace method

#print(pytz.all_timezones) => To see all timezones
dtobj_india=dtobj3.astimezone(pytz.timezone("Asia/Calcutta")) #astimezone method
print(dtobj_india)

结果:

2020-08-28 06:01:13.833290
2020-08-28 11:31:13.833290+05:30

相关问题