2013-03-07 162 views
1

我有此代碼可以在我的桌面上獲取當前日期。獲取日期或時間,服務器

SimpleDateFormat dnow = new SimpleDateFormat("MM-dd-yyyy"); 
text.setText(dnow.format(new java.util.Date())); 

現在我有一臺服務器和電腦, 如何才能得到服務器的時間, 如果我安裝程序,計算機將有 時間服務器在我的程序,導致我的數據庫位於服務器中。

+0

您可以使用NTP同步主機:http://en.wikipedia.org/wiki/Network_Time_Protocol。您基於SQL的應用程序應該*總是*使用服務器時間(例如「gettime()」)並且從不*從客戶端傳遞時間/日期。 – paulsm4 2013-03-07 06:52:10

+0

問題不清楚。什麼意思是「如果我安裝程序,電腦會有服務器的時間」? – 2013-03-07 06:52:24

+0

其他計算機將在程序中有服務器的時間 – kelvz 2013-03-07 06:59:42

回答

0

如果您想獲得服務器的當前日期,可以通過服務器上的Servlet或WebService請求值「System.currentTimeMillis()」。

System.currentTimeMillis() returns number of milliseconds since 1970. 
+0

這並不回答原來的問題。 – 2013-03-07 07:04:38

+0

其唯一的系統不是服務器的時間 – kelvz 2013-03-07 07:06:16

+0

我的意思是在您的服務器上運行System.currentTimeMillis(),然後您得到了服務器的時間 – 2013-03-07 07:12:59

1

如果服務器沒有提供相同的服務,則無法獲取服務器日期和時間。因此,您可以在服務器上安裝服務並從系統中調用它。

如果服務器是數據庫服務器則是連接到數據庫服務器,並運行查詢來獲取時間,如這些替代:

  • 甲骨文

    SELECT TO_CHAR(CURRENT_DATE, 'DD-MON-YYYY HH:MI:SS') FROM DUAL; 
    

    SELECT TO_CHAR(SYSDATE, 'DD-MON-YYYY HH:MI:SS') FROM DUAL; 
    
  • MySQL

    SELECT CURDATE(); 
    
  • SQL服務器

    SELECT GETDATE() 
    GO