Python Начало свидания онлайн? - PullRequest
5 голосов
/ 26 мая 2009

Как я могу получить текущую дату, месяц и год онлайн, используя Python? Спасибо!

РЕДАКТИРОВАТЬ - Под этим я подразумеваю, вместо того чтобы получать его с даты компьютера, посетите веб-сайт и получите его, чтобы он не зависел от компьютера.

Ответы [ 5 ]

30 голосов
/ 26 мая 2009

Поэтому, подумав о «такой тривиальной» части, я пошел дальше и просто сделал веб-приложение google app engine - когда вы его посещаете, он возвращает простой ответ, утверждающий, что это HTML, но на самом деле просто строка, такая как 2009-05-26 02:01:12 UTC\n. Любые пожелания? -)

Пример использования с модулем Pyll's urllib:

Python 2.7

>>> from urllib2 import urlopen
>>> res = urlopen('http://just-the-time.appspot.com/')
>>> time_str = res.read().strip()
>>> time_str
'2017-07-28 04:55:48'

Python 3.x +

>>> from urllib.request import urlopen
>>> res = urlopen('http://just-the-time.appspot.com/')
>>> result = res.read().strip()
>>> result
b'2017-07-28 04:53:46'
>>> result_str = result.decode('utf-8')
>>> result_str
'2017-07-28 04:53:46'
4 голосов
/ 26 мая 2009

Если вы не можете использовать NTP, а хотите придерживаться HTTP, вы можете urllib.urlget("http://developer.yahooapis.com/TimeService/V1/getTime") и проанализировать результаты:

<?xml version="1.0" encoding="UTF-8"?>
<Error xmlns="urn:yahoo:api">
        The following errors were detected:
        <Message>Appid missing or other error </Message>
</Error>
<!-- p6.ydn.sp1.yahoo.com uncompressed/chunked Mon May 25 18:42:11 PDT 2009 -->

Обратите внимание, что дата и время (в PDT) указаны в последнем комментарии (сообщение об ошибке связано с отсутствием идентификатора приложения). Вероятно, есть более подходящие веб-службы для получения текущей даты и времени в HTTP (без необходимости регистрации и т. П.), Например, сделать такую ​​услугу свободно доступной в Google App Engine было бы так тривиально, но я не знаю ни одной случайной ошибки.

0 голосов
/ 17 февраля 2017

Для использования онлайн-строки времени, например, полученный из онлайн-сервиса (http://just -the-time.appspot.com / ), его можно прочитать и преобразовать в формат datetime.datetime, используя urllib2 и datetime.datetime:

import urllib2
from datetime import datetime
def getOnlineUTCTime():
    webpage = urllib2.urlopen("http://just-the-time.appspot.com/")
    internettime = webpage.read()
    OnlineUTCTime = datetime.strptime(internettime.strip(), '%Y-%m-%d %H:%M:%S')
    return OnlineUTCTime

или очень компактный (менее хорошо читаемый)

OnlineUTCTime=datetime.strptime(urllib2.urlopen("http://just-the-time.appspot.com/").read().strip(),
'%Y-%m-%d %H:%M:%S')

небольшое упражнение:
Сравнение вашего времени UTC с временем онлайн:

print(datetime.utcnow() - getOnlineUTCTime())
# 0:00:00.118403
#if the difference is negatieve the result will be something like: -1 day, 23:59:59.033398

(имейте в виду, что время обработки также включено)

0 голосов
/ 26 мая 2009

Возможно, вы имеете в виду протокол NTP? Этот проект может помочь: http://pypi.python.org/pypi/ntplib/0.1.3

0 голосов
/ 26 мая 2009

вот модуль python для нажатия NIST онлайн http://freshmeat.net/projects/mxdatetime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...