Obter data e hora certa

770 views
Skip to first unread message

Lucas Doná

unread,
Aug 14, 2014, 10:09:12 AM8/14/14
to python...@googlegroups.com
Bom dia a todos.

Realizo algumas tarefas e as salvo em um arquivo e parte do nome criado para o arquivo é a data atual.
Problema que, mesmo ligando o pc conectado à internet, a hora não atualiza e pega uma data muito antiga, então, gostaria de obter essa data e hora de um servidor externo, como faço isso?
De um servidor do google, ou outro servidor de horas.
Único objetivo é criar o arquivo com nome correto, não me importando em acertar a hora do pc :-)

OBS: Programa feito para Windows.

Obrigado pela ajuda.
Abraços.

Giovane Liberato

unread,
Aug 14, 2014, 10:12:04 AM8/14/14
to python...@googlegroups.com
Olá lucas, qual função pra pegar a data você esta usando?

posta seu código aqui pra galera poder te ajudar melhor


--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo quot;Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

José Neto

unread,
Aug 14, 2014, 10:12:25 AM8/14/14
to python...@googlegroups.com


Em 14 de agosto de 2014 11:09, Lucas Doná <asty...@gmail.com> escreveu:
--

Lucas Doná

unread,
Aug 14, 2014, 10:41:22 AM8/14/14
to python...@googlegroups.com
Pego a data do sistema
time.strftime("%Y%m%d-%H_%M_%S")

Mas foi o que eu falei, as vezes a data do sistema está desatualizada, preciso pegar essa data de um servidor externo, pela internet, para sempre ter a data e hora atual.


Você recebeu essa mensagem porque está inscrito em um tópico no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/python-brasil/IaoyLbpxb9M/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para python-brasi...@googlegroups.com.

Lucas Doná

unread,
Aug 14, 2014, 10:42:04 AM8/14/14
to python...@googlegroups.com
Vou dar uma olhada nesse ntplib, obrigado.

Danillo Souza

unread,
Aug 14, 2014, 10:43:11 AM8/14/14
to python...@googlegroups.com
Utilizando a requests, você pode fazer o seguinte:

>>> import requests
>>> t = requests.get('http://www.timeapi.org/pdt/in+four+hours')
>>> t.content
'2014-08-14T11:39:53-07:00'


Depois é só parsear o resultado.


Em 14 de agosto de 2014 11:12, José Neto <josene...@gmail.com> escreveu:

Lucas Doná

unread,
Aug 14, 2014, 11:32:51 AM8/14/14
to python...@googlegroups.com
Vou testar esse resquests também.

Consegui usando o ntplib, mas tive que dar uma vasculhada no google para ver como instalar no windows, no linux foi moleza, pelo apt-get mesmo.
No windows tive que fazer o download do ntplib-0.3.2.tar.gz no site https://pypi.python.org/pypi/ntplib/, o 7zip descompacta esse arquivo e o .tar também.
Abrir o CMD (eu abri como adminstrados), navegar até a pasta descompactada (onde se encontra o setup.py) e executar: python setup.py install


Você recebeu essa mensagem porque está inscrito em um tópico no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/python-brasil/IaoyLbpxb9M/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para python-brasi...@googlegroups.com.

Francisco C Soares

unread,
Aug 14, 2014, 11:43:12 AM8/14/14
to python...@googlegroups.com, asty...@gmail.com
On 14-08-2014 11:41, Lucas Doná wrote:
Vou dar uma olhada nesse ntplib, obrigado.
.

Saudações Lucas,

Usa a ntplib é uma ótima ideia.

Você pode usar os serviços do ON, http://pcdsh01.on.br/, para
coletar a hora.
Em "Acerte seu Computador via Internet" você encontra os dois
servidores NTP do ON.

Ex.:
>>> import ntplib
>>> from time import ctime
>>> t = ntplib.NTPClient()
>>> r = t.request('200.20.186.75')
>>> print ctime(r.tx_time)
Thu Aug 14 12:41:32 2014


Sucesso,
___________________________
Francisco C Soares ( Junior )
403790c898466667cdbe5a262146de8fb93139c4

BLOG dotjunior.blogspot.com

Lucas Doná

unread,
Aug 14, 2014, 11:43:31 AM8/14/14
to python...@googlegroups.com
Consegui usar os 2, o requests tive que instalar da mesma forma que o ntplib.
A formatação do retorno do requests é melhor, mas demora a retornar a resposta (tem vez que demora mais de 10 segundos)
O ntplib retorna o pedido de imediato (0.05 segundos)

Obrigado a todos pela ajuda.

Lucas Doná

unread,
Aug 14, 2014, 11:46:27 AM8/14/14
to python...@googlegroups.com
Isso Francisco.
Seria melhor se a data retornasse só com números, tipo: 08 e não Ago, mas tudo bem, a gente trata isso:

José Neto

unread,
Aug 14, 2014, 12:24:06 PM8/14/14
to python...@googlegroups.com
Pode tentar isso:

import ntplib
from time import localtime

n = ntplib.NTPClient()
r = n.request('pool.ntp.br')
t = localtime(r.tx_time)

A variável t seria uma estrutura do tipo struct_time[1]. Bastaria utilizar os seus valores: t.tm_year, t.tm_mon etc.

[1] https://docs.python.org/2/library/time.html#time.struct_time

Lucas Doná

unread,
Aug 14, 2014, 1:09:23 PM8/14/14
to python...@googlegroups.com
Hummm, valeu pelas dica :-)
Reply all
Reply to author
Forward
0 new messages