Как получить не системное время и дату в python?
Я хочу получить реальное мировое время и дату (Не важно по какому часовому поясу).
Я пытался выполнить вроде этого:
import datetime
print(datetime.datetime.now())
И да, я получаю время и дату:
2021-06-30 12:14:46.893459
Но проблема в том, что если пользователь у себя изменит настройки даты и времени, то измениться и вывод который я получу, мне это не годиться. Как я могу получить то же время и дату, вне зависимости от настроек пользователя?
Ответы (2 шт):
Посмотрите https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow
now() выдает Вам Ваше текущее время, тогда как utcnow() общемировое, которое потом можно в локальные зоны перевести.
import datetime
print(datetime.datetime.utcnow()) # 2021-06-30 09:36:24.605686
print(datetime.datetime.now()) # 2021-06-30 12:36:24.605686
Если же нужно время от сервера, то тут лучше смотреть в сторону запроса к NTP серверам. К примеру через библиотеку ntplib https://github.com/Tipoca/ntplib
import ntplib
import datetime
conn = ntplib.NTPClient()
response = conn.request('0.ru.pool.ntp.org', version=3)
print(datetime.datetime.fromtimestamp(response.tx_time, datetime.timezone.utc))
Держи
from WorldTimeAPI.schemas import *
from WorldTimeAPI.service import Client
payload = {"area":"EST"}
myclient = Client('timezone')
r = myclient.get(**payload)
if isinstance(r,ErrorJson):
print(r.errMsg)
elif isinstance(r,DateTimeJson):
print(r.datetime)