Как получить текущее серверное время в Java?



Как я могу получить текущее время сервера в Java? Я пытался System.currentTimeMills(), но он возвращает мне время клиента, а не серверное время. Я хочу получить время "сервера" в миллисекундах.



Пожалуйста, не закрывайте этот вопрос. Я искал в сети, но ничего не нашел. Весь код возвращает значение из 1970. Я хочу, например: текущее время сервера 9/25/2012:10:19AM в миллисекундах.



Также я искал другие вопросы, и это не дубликат других вопросов.

782   4  

4 ответов:

System.currentTimeMillis() возвращает количество миллисекунд с 1970 года.

Если вы запустите его на сервере, вы получите серверное время. Если вы запускаете его на клиенте (например, апплет, автономное настольное приложение и т. д.) вы получите время клиента. Чтобы получить дату сервера на клиенте, настройте вызов, который возвращает клиенту время сервера в отформатированной строке.

Если вы хотите, чтобы дата была отформатирована определенным образом, сначала создайте объект Date(), а затем отформатируйте его с помощью SimpleDateFormat
Date d1 = new Date();
SimpleDateFormat df = new SimpleDateFormat("MM/dd/YYYY HH:mm a");
String formattedDate = df.format(d1);

Если вы хотите, чтобы ваш клиент получил время сервера, вам придется сделать запрос на сервер и заставить сервер отправить назад свое текущее время в ответе.

Если вы хотите вернуть клиенту текущее время (System.currentTimeMillis ()) со стороны сервера в миллисекундах, вам нужно использовать часовой пояс сервера при форматировании / преобразовании значения.

СЕРВЕРНАЯ ПРОГРАММА

import java.io.*;

import java.net.*;

import java.util.*;

class dateserver

{

public static void main(String args[])

{

ServerSocket ss;

Socket s;

PrintStream ps;

DataInputStream dis;

String inet;

try

{

ss=new ServerSocket(8020);

while(true)

{

s=ss.accept();

ps=new PrintStream(s.getOutputStream());


Date d=new Date();

ps.println(d);

ps.close();

}

}

catch(IOException e)

{

System.out.println("The exception is: "+e);

}   }   }

КЛИЕНТСКАЯ ПРОГРАММА

import java.io.*;

import java.net.*;

class dateclient

{

public static void main(String args[])

{

Socket soc;

DataInputStream dis;

String sdate;

PrintStream ps;

    try

    {

    InetAddress ia=InetAddress.getLocalHost();

    soc=new Socket(ia,8020);

    dis=new DataInputStream(soc.getInputStream());

    sdate=dis.readLine();

    System.out.println("The data in the server is: "+sdate);

    }

    catch(IOException e)

    {

    System.out.println("The exception is: "+e);

    }

}

}

Comments

    Ничего не найдено.