How to add Indian Standard Time (IST) in Django?
Question:
We want to get the current time in India in our Django project. In settings.py, UTC is there by default. How do we change it to IST?
Answers:
Change the field TIME_ZONE
in the settings.py
.
For the Indian standard time you will need:
TIME_ZONE = 'Asia/Kolkata'
For more information about the TIME_ZONE in Django you can see: https://docs.djangoproject.com/en/dev/ref/settings/#time-zone
check django_timezones! this may help others too
it consists of all other timezones for references
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = True
The above settings should work
Modify setting.py and change the time zone to TIME_ZONE = ‘Asia/Kolkata’
Use Below settings its worked for me.
TIME_ZONE = ‘Asia/Kolkata’
USE_I18N = True
USE_L10N = True
USE_TZ = False
Keep TIME_ZONE = ‘Asia/Kolkata’ in settings.py file and restart the service from where you are accessing the timezone (server or shell).
In my case, I restarted the python shell in which I was working and it worked fine for me.
Simple Change TIME ZONE from ‘UTC’ to ‘Asia/Kolkata’ remember K and A is Capital here.
Adding to Jon Answer, If timezone.now()
still not working after changing the TIME_ZONE='Asia/Kolkata'
.
Instead of timezone.now()
you can use timezone.localtime()
.
Hope it solves.. 🙂
All the solutions given above are working.
see the code i have used to get my timezone. my timezone is Indian standard time zone.
https://docs.djangoproject.com/en/3.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGE_CODE = ‘en-us’
TIME_ZONE = ‘Asia/Calcutta’
USE_I18N = True
USE_L10N = True
USE_TZ = True
This should work.
Change your settings.py
to:
TIME_ZONE = 'Asia/Calcutta'
USE_I18N = True
USE_L10N = True
USE_TZ = False
This should work.
For more information about the TIME_ZONE in Django you can see: https://docs.djangoproject.com/en/dev/ref/settings/#time-zone
In general, Universal Time(UTC) based on the mean sidereal time as measured in Greenwich, England. It’s also approximately equal to mean solar time from Greenwich. If Daylight Saving Time is in effect in the time zone, one must add 1 hour to the above standard times.
Django got all these timezone support, The django.utils timezone module, just returns datetime based on the USE TZ
setting, they are simply datetime objects with timezone ‘awareness’.
For IST(India Standard Time), which is UTC + 5:30, set TIME_ZONE = 'Asia/Kolkata'
and USE_TZ = True
, also USE_I18N = True, USE_L10N = True
, which are Internationalization and localization settings.
For a reference,
from django.utils import timezone
import datetime
print(timezone.now()) # The UTC time
print(timezone.localtime()) # timezone specified time,if timezone is UTC, it is same as above
print(datetime.datetime.now()) # default localmachine time
# output
2020-12-11 09:13:32.430605+00:00
2020-12-11 14:43:32.430605+05:30 # IST is UTC+5:30
2020-12-11 14:43:32.510659
refer timezone settings in django docs for more details.
Django stores timestamp so if we just change the TIME_ZONE
variable Django will handle rest.
TIME_ZONE = 'Asia/Kolkata'
change TIME_ZONE in settings.py.
TIME_ZONE = 'Asia/Colombo' # 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
to check it is working properly.
python manage.py shell
from django.utils import timezone
timezone.localtime(timezone.now())
then just check your time 🙂
here is List of tz database time zones as per wiki.
for India user time below few lines of code in settings.py file
settings.py
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = False
Don’t forget False in USE_TZ
We want to get the current time in India in our Django project. In settings.py, UTC is there by default. How do we change it to IST?
Change the field TIME_ZONE
in the settings.py
.
For the Indian standard time you will need:
TIME_ZONE = 'Asia/Kolkata'
For more information about the TIME_ZONE in Django you can see: https://docs.djangoproject.com/en/dev/ref/settings/#time-zone
check django_timezones! this may help others too
it consists of all other timezones for references
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = True
The above settings should work
Modify setting.py and change the time zone to TIME_ZONE = ‘Asia/Kolkata’
Use Below settings its worked for me.
TIME_ZONE = ‘Asia/Kolkata’
USE_I18N = True
USE_L10N = True
USE_TZ = False
Keep TIME_ZONE = ‘Asia/Kolkata’ in settings.py file and restart the service from where you are accessing the timezone (server or shell).
In my case, I restarted the python shell in which I was working and it worked fine for me.
Simple Change TIME ZONE from ‘UTC’ to ‘Asia/Kolkata’ remember K and A is Capital here.
Adding to Jon Answer, If timezone.now()
still not working after changing the TIME_ZONE='Asia/Kolkata'
.
Instead of timezone.now()
you can use timezone.localtime()
.
Hope it solves.. 🙂
All the solutions given above are working.
see the code i have used to get my timezone. my timezone is Indian standard time zone.
https://docs.djangoproject.com/en/3.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGE_CODE = ‘en-us’
TIME_ZONE = ‘Asia/Calcutta’
USE_I18N = True
USE_L10N = True
USE_TZ = True
This should work.
Change your settings.py
to:
TIME_ZONE = 'Asia/Calcutta'
USE_I18N = True
USE_L10N = True
USE_TZ = False
This should work.
For more information about the TIME_ZONE in Django you can see: https://docs.djangoproject.com/en/dev/ref/settings/#time-zone
In general, Universal Time(UTC) based on the mean sidereal time as measured in Greenwich, England. It’s also approximately equal to mean solar time from Greenwich. If Daylight Saving Time is in effect in the time zone, one must add 1 hour to the above standard times.
Django got all these timezone support, The django.utils timezone module, just returns datetime based on the USE TZ
setting, they are simply datetime objects with timezone ‘awareness’.
For IST(India Standard Time), which is UTC + 5:30, set TIME_ZONE = 'Asia/Kolkata'
and USE_TZ = True
, also USE_I18N = True, USE_L10N = True
, which are Internationalization and localization settings.
For a reference,
from django.utils import timezone
import datetime
print(timezone.now()) # The UTC time
print(timezone.localtime()) # timezone specified time,if timezone is UTC, it is same as above
print(datetime.datetime.now()) # default localmachine time
# output
2020-12-11 09:13:32.430605+00:00
2020-12-11 14:43:32.430605+05:30 # IST is UTC+5:30
2020-12-11 14:43:32.510659
refer timezone settings in django docs for more details.
Django stores timestamp so if we just change the TIME_ZONE
variable Django will handle rest.
TIME_ZONE = 'Asia/Kolkata'
change TIME_ZONE in settings.py.
TIME_ZONE = 'Asia/Colombo' # 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
to check it is working properly.
python manage.py shell
from django.utils import timezone
timezone.localtime(timezone.now())
then just check your time 🙂
here is List of tz database time zones as per wiki.
for India user time below few lines of code in settings.py file
settings.py
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = False
Don’t forget False in USE_TZ