Data diretamente do servidor

24 respostas
P

Alguém sabe como eu faço para pegar a data diretamente do servidor em uma aplicação, porque se eu pegar a data do sistema, como eu estou fazendo, o usuário pode estar com a sua data incorreta… por favor, preciso de ajuda…

24 Respostas

Y

Como seria essa aplicação ela servidor de banco de dados, eu pegaria a hora direto pelo banco…

T++

P

“yuusuke_urameshi2”:
Como seria essa aplicação ela servidor de banco de dados, eu pegaria a hora direto pelo banco…

T++

Eu teria que pegar esta data de um servidor de banco de dados, que também é um servidor de aplicação

Y

Então pegue a data do banco e não a data do cliente.
A data que será do banco é mesma do servidor.

No oracle por exemplo:

select to_char(sysdate,'HH:MI') as hora_atual from dual;

Ok

P

“yuusuke_urameshi2”:
Então pegue a data do banco e não a data do cliente.
A data que será do banco é mesma do servidor.

No oracle por exemplo:

select to_char(sysdate,'HH:MI') as hora_atual from dual;

Ok

Deu certo aki na minh base de dados, mas como eu faria para pegar também os segundos?

P

“Ping”:
“yuusuke_urameshi2”:
Então pegue a data do banco e não a data do cliente.
A data que será do banco é mesma do servidor.

No oracle por exemplo:

select to_char(sysdate,'HH:MI') as hora_atual from dual;

Ok

Deu certo aki na minh base de dados, mas como eu faria para pegar também os segundos?

Consegui só mudar para

select to_char(sysdate,'HH:MI:SS') as hora_atual from dual;
P

“Ping”:
“Ping”:
“yuusuke_urameshi2”:
Então pegue a data do banco e não a data do cliente.
A data que será do banco é mesma do servidor.

No oracle por exemplo:

select to_char(sysdate,'HH:MI') as hora_atual from dual;

Ok

Deu certo aki na minh base de dados, mas como eu faria para pegar também os segundos?

Consegui só mudar para

select to_char(sysdate,'HH:MI:SS') as hora_atual from dual;

Mais uma coisinha, neste projeto que eu estou envolvido a gente usa o Banco de Dados Oracle, e o JDeveloper. Você não saberia como, através do meu ViewObject, executar o sql acima e pegar o resultado dele.
Obs: Na faculdade eu aprendi como fazer isso da maneira mais “simples”, através de um Connection, um Statemnet eu ResultSet

Y

Desculpa não uso o JDeveloper, eu uso msm Connection Statement e ResultSet…

Flw

P

“yuusuke_urameshi2”:
Desculpa não uso o JDeveloper, eu uso msm Connection Statement e ResultSet…

Flw

Mas mesmo assim brigadão pela sua ajuda, foi muito útil

P

E pra pegar a data no banco de dados, qual seria o sql?

Y

Assim

select to_char(sysdate,'dd/mm/yyyy') as data from dual;

QQ coisa

P

“yuusuke_urameshi2”:
Assim

select to_char(sysdate,'dd/mm/yyyy') as data from dual;

QQ coisa

Você não teria em mãos este código SQL para outros Banco de Dados?

Rafael_Steil

Que isso… fazer uma consulta no banco somente para pegar o horario eh dose hein?!

Com um simples new Date(), System.currentTimeMillis(), metodos do GregorianCalendar e afins, vc ja tems bilhares de opcoes de pegar a data…
Logicamente a data retornada, assim como a retornada com essa maluquice de consultar o banco, sera a data do servidor, e nao a data que esta no micro do usuario.

Rafael

P

“Rafael Steil”:
Que isso… fazer uma consulta no banco somente para pegar o horario eh dose hein?!

Com um simples new Date(), System.currentTimeMillis(), metodos do GregorianCalendar e afins, vc ja tems bilhares de opcoes de pegar a data…
Logicamente a data retornada, assim como a retornada com essa maluquice de consultar o banco, sera a data do servidor, e nao a data que esta no micro do usuario.

Rafael

Me desculpe, mas com um simples new Date() ele me retorna a data do micro não do servidor, e também os métodos do GregorianCalendar retornam a data do micro

Rafael_Steil

O sistema somente ira retornar a data do micro do usuario se a aplicacao rodar no proprio micro desse usuario. Se a aplicacao roda em um servidor, como um sistema web, a data retornada sera a presente no servidor web.
Se esta retornando a data do cliente, voce esta fazendo alguma coisa errada ou acha que a data retornada eh a do cliente.

Rafael

Y

Com certeza a forma mais correta seria usar o new Date(), porem no meu caso não sei o caso do Ping a minha aplicação é swing e roda no cliente, com certeza todo mundo sabe se a aplicação é web a data que iria retornar seria a do server…

[]'s

P

“Rafael Steil”:
O sistema somente ira retornar a data do micro do usuario se a aplicacao rodar no proprio micro desse usuario. Se a aplicacao roda em um servidor, como um sistema web, a data retornada sera a presente no servidor web.
Se esta retornando a data do cliente, voce esta fazendo alguma coisa errada ou acha que a data retornada eh a do cliente.

Rafael

A nossa idéia era disponibilizar na WEB para que os clientes baixassem o programa com o Java Web Start, fazendo isso o programa vai pegar qual data?

Rafael_Steil

JWS vai rodar no micro do usuario. Ai sim a data seria a da maquina dele., ja que a aplicacao nao sera remota.

Rafael

P

“Rafael Steil”:
JWS vai rodar no micro do usuario. Ai sim a data seria a da maquina dele., ja que a aplicacao nao sera remota.

Rafael

Então eu vou ter que fazer do jeito que estou fazendo, pegando a data do Banco de Dados… então se alguém tiver os script para outros Bancos além do Oracle, por favor, me passe, valeu…

Rafael_Steil

O manual de cada banco de dados resolve o teu problema…

Por exemplo, no www.mysql.com, secao Documentation, eh soh vc procurar por Date and Time … la, dentre oturas, voce ira ver que da pra fazer

SELECT NOW();

E assim por diante…

Rafael

aborges

Faz um WebService rapidinho usando o Axis…

Acho q resolve melhor seu problema do q acessar a base …

C

Mesmo em aplicações WEB, rodando no cliente, é indicado pegar sempre a data do banco. Se você resolver colocar o sistema para rodar em mais de uma máquina pra dividir a carga os tempos podem ser diferentes.

V

Caraca meu… o que você tem contra dar uma pesquisada na internet? É tão difícil assim?

cristianopagani

Aproveitando o assunto, estou com um problema semelhante:

Estou trabalhando em uma aplicação web. A aplicação implementa em um applet um ponto eletrônico (biometria), no momento a minha dificuldade é como pegar a hora do servidor (ou de outro local que seja consistente) apartir do applet no cliente e então registraria as horas de entrada, saida etc....
           Agradeço muito a ajuda.
_Zell_

Oi pessoal.
Eu estava tendo esse problema também. No meu caso eu precisava pegar a data e hora do servidor porque o usuário sempre está suscepível a ter o horário do computador errado, principalmente quando os horários de versão e inverno se alternam aqui no Brasil. Além do mais eu trabalho com um sistema que faz certas validações e calculos importantes com a data. Sendo assim eu desenvolvir uma solução que pode ajudar vocês a pegar a data do servidor. Aqui eu to usando MySQL e Hibernate:

public Date getServerTime() {
                Session session = DAOFactory.getSession();	
		session.beginTransaction();
		SQLQuery query = session.createSQLQuery("SELECT NOW()");
		Timestamp time = (Timestamp) query.uniqueResult();
		return new Date(time.getTime());
	}

Espero ter ajudado. Abraço! o/

Criado 22 de março de 2004
Ultima resposta 19 de abr. de 2012
Respostas 24
Participantes 8