java日期和时间获取方法求教!

yongqiangcheng 2007-06-19 03:54:38
因为我的系统没有自带的电池,所以一旦断电,所有的时间就回到了1980年0点0分。
有没有办法在系统运行的时候,随便访问一个网页,例如google,从网页得到当前的时间的方法?然后就能设定我的系统了(如何设定和读取自己系统的时间我知道用Date()就行了)。不需要非常精确的时间,能精确到小时或者分钟就好啦。

我用的是Java,请大侠帮忙解决啊!有没有简单的实现方法?欢迎其他从网络获取时间的实现方法,原则是不要太复杂,多谢多谢!
...全文
480 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongqiangcheng 2007-06-20
  • 打赏
  • 举报
回复
多谢各位了。
用GPRS很难连上时间服务器,干脆自己弄了个小程序在ftp服务器上跑,实时写时间到文件,然后从远程读此文件的时间。
感谢支持,给分结帖!
baobao28 2007-06-19
  • 打赏
  • 举报
回复
记得这种方法一定要连接外网哦,不然不能实现的,暂且提供你JS方式获取网络时间,设置时间你自己写吧
<HTML>
<HEAD>
<TITLE>国家授时中心 网络服务器时间发布</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">

<link rel="stylesheet" href="webclass.css" type="text/css">
</HEAD>
<BODY background="BGF.GIF" leftMargin=0 topMargin=0 MARGINWIDTH="0" MARGINHEIGHT="0" onLoad="startclock()">
<div align="center">
<p><b><font size="3">服务器时间:</font></b>
<script language="Javascript1.2">
<!--
document.write('<b><font face=geneva, arial, helvetica, sans-seif size=5 color=#000000>');
document.write('2007年6月19日');
document.write('</font></b>');
var tags_before_clock = "<b><font face='geneva, arial, helvetica, sans-seif' size='5' color='#000000'>";
var tags_middle_clock = "</font></b><font face='geneva, arial, helvetica, sans-seif' size='3' color='#666666'>";
var tags_after_clock = "</font>";
if(navigator.appName == "Netscape") {
document.write('<layer id="clock"></layer><br>');
}
if (navigator.appVersion.indexOf("MSIE") != -1){
document.write('<span id="clock"></span>');
}
var col = ":";
var spc = " ";
var com = ",";
var apm = "<br>";
var hrs = 10;
var min = 11;
var sec = 06;
var nowww = new Date();
var secc = sec - nowww.getSeconds();
var ff2 = 1 ;
var ff3 = 1 ;
var ff4 = 0 ;
function MakeArray(size)
{
this.length = size;
for(var i = 1; i <= size; i++)
{
this[i] = "";
}
return this;
}
function THINPIGServerTime(){
var noww = new Date();
sec = (noww.getSeconds() + secc)%60
if(sec<0)sec=60+sec;
if(ff4==0 && (sec == 00 || sec == 60)){sec = 0;min++;ff3=1;ff4=1;}
if(sec != 00 && sec != 60)ff4=0;//使在0秒或60秒一秒钟校正多次不出现分钟增加多次的现象
if(min == 60){min=00;hrs++;ff2=1}
if(hrs == 24){hrs=0;}
if(sec==0 && min==0 && hrs==0){window.location=("stime.asp");}//新的一天的时候刷新页面主要是重新读入日期
if (hrs<=9&&ff2==1){ff2=0; hrs="0"+hrs;}
if (sec<=9) sec="0"+sec;
if (min<=9&&ff3==1) {ff3=0; min="0"+min;}
if(navigator.appName == "Netscape") {
document.clock.document.write(tags_before_clock+hrs+col+min+col+sec+apm+spc+tags_middle_clock+spc);
document.clock.document.close();
}
if (navigator.appVersion.indexOf("MSIE") != -1){
clock.innerHTML = tags_before_clock+hrs+col+min+col+sec+apm+spc+tags_middle_clock+spc;
}
}
setInterval("THINPIGServerTime()",100);//一秒钟自校对10次消除跳秒现象
//-->
</script>
<font size="3">客户机时间:</font>
<script language="JavaScript">
<!-- Hide
var timerID = null
var timerRunning = false
function stopclock(){
if(timerRunning)
clearTimeout(timerID)
timerRunning = false
}

function startclock(){
stopclock()
showtime()
}
if(navigator.appName == "Netscape") {
document.write('<layer id="clocklocal"></layer><br>');
}
if (navigator.appVersion.indexOf("MSIE") != -1){
document.write('<span id="clocklocal"></span>');
}
function stopclock (){
if(timerRunning)
clearTimeout(timerID);
timerRunning = false
}
function showtime () {
var now = new Date();
var year = now.getYear();
var month = now.getMonth() + 1;
var date = now.getDate();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
var timeValue = "";
timeValue += "<font size=5>"+year + "年";

timeValue += month + "月";
timeValue += date + "日"+"</font>"+tags_before_clock;
timeValue += ((hours < 10) ? "0" : "") + hours;
timeValue += ((minutes < 10) ? ":0" : ":") + minutes;
timeValue += ((seconds < 10) ? ":0" : ":") + seconds;
clocklocal.innerHTML = timeValue;
timezone = new MakeArray(25);
for(i= -12;i<=12;i++)
{timezone[i]= hrs-8+i ;
if (timezone[i] < 0)
timezone[i] = ' 昨天 '+(24+timezone[i]%24);

else
if (timezone[i] > 24 )
timezone[i] = ' 明天 '+timezone[i]%24;
else
timezone[i] = ' 今天 '+timezone[i]%24;
}
minz=minutes+30;
if (minz >=60)
{
minz = minz%60;
var hz35w = hrs-8-3-1;
if (hz35w < 0)hz35w = ' 昨天 '+(24+hz35w%24);
else if(hz35w > 24 )hz35w = ' 明天 '+hz35w%24;
else hz35w = ' 今天 '+hz35w%24;
var hz35e = hrs-8+3+1;
if (hz35e < 0)hz35e = ' 昨天 '+(24+hz35e%24);
else if(hz35e > 24 )hz35e = ' 明天 '+hz35e%24;
else hz35e = ' 今天 '+hz35e%24;
var hz45e = hrs-8+4+1;
if (hz45e < 0)hz45e = ' 昨天 '+(24+hz45e%24);
else if(hz45e > 24 )hz45e = ' 明天 '+hz45e%24;
else hz45e = ' 今天 '+hz45e%24;
var hz55e = hrs-8+5+1;
if (hz55e < 0)hz55e = ' 昨天 '+(24+hz55e%24);
else if(hz55e > 24 )hz55e = ' 明天 '+hz55e%24;
else hz55e = ' 今天 '+hz55e%24;
var hz95e = hrs-8+9+1;
if (hz95e < 0)hz95e = ' 昨天 '+(0-hz95e%24);
else if(hz95e > 24 )hz95e = ' 明天 '+hz95e%24;
else hz95e = ' 今天 '+hz95e%24;

}
else
{
var hz35w = hrs-8-3;
if (hz35w < 0)hz35w = ' 昨天 '+(24+hz35w%24);
else if(hz35w > 24 )hz35w = ' 明天 '+hz35w%24;
else hz35w = ' 今天 '+hz35w%24;
var hz35e = hrs-8+3;
if (hz35e < 0)hz35e = ' 昨天 '+(24+hz35e%24);
else if(hz35e > 24 )hz35e = ' 明天 '+hz35e%24;
else hz35e = ' 今天 '+hz35e%24;
var hz45e = hrs-8+4;
if (hz45e < 0)hz45e = ' 昨天 '+(24+hz45e%24);
else if(hz45e > 24 )hz45e = ' 明天 '+hz45e%24;
else hz45e = ' 今天 '+hz45e%24;
var hz55e = hrs-8+5;
if (hz55e < 0)hz55e = ' 昨天 '+(24+hz55e%24);
else if(hz55e > 24 )hz55e = ' 明天 '+hz55e%24;
else hz55e = ' 今天 '+hz55e%24;
var hz95e = hrs-8+9;
if (hz95e < 0)hz95e = ' 昨天 '+(24+hz95e%24);
else if(hz95e > 24 )hz95e = ' 明天 '+hz95e%24;
else hz95e = ' 今天 '+hz95e%24;
}
minz=((minz < 10) ? "0" : "") + minz;

clocklocal_12w.innerHTML = timezone[-12]+col+min;
clocklocal_11w.innerHTML = timezone[-11]+col+min;
clocklocal_10w.innerHTML = timezone[-10]+col+min;
clocklocal_9w.innerHTML = timezone[-9]+col+min;
clocklocal_8w.innerHTML = timezone[-8]+col+min;
clocklocal_7w.innerHTML = timezone[-7]+col+min;
clocklocal_6w.innerHTML = timezone[-6]+col+min;
clocklocal_5w.innerHTML = timezone[-5]+col+min;
clocklocal_4w.innerHTML = timezone[-4]+col+min;
clocklocal_3w.innerHTML = timezone[-3]+col+min;
clocklocal_2w.innerHTML = timezone[-2]+col+min;
clocklocal_1w.innerHTML = timezone[-1]+col+min;
clocklocal_0.innerHTML = timezone[0]+col+min;
clocklocal_1e.innerHTML = timezone[1]+col+min;
clocklocal_2e.innerHTML = timezone[2]+col+min;
clocklocal_3e.innerHTML = timezone[3]+col+min;
clocklocal_4e.innerHTML = timezone[4]+col+min;
clocklocal_5e.innerHTML = timezone[5]+col+min;
clocklocal_6e.innerHTML = timezone[6]+col+min;
clocklocal_7e.innerHTML = timezone[7]+col+min;
clocklocal_8e.innerHTML = timezone[8]+col+min;
clocklocal_9e.innerHTML = timezone[9]+col+min;
clocklocal_10e.innerHTML = timezone[10]+col+min;
clocklocal_11e.innerHTML = timezone[11]+col+min;
clocklocal_12e.innerHTML = timezone[12]+col+min;
clocklocal_35w.innerHTML = hz35w+col+minz;
clocklocal_35e.innerHTML = hz35e+col+minz;
clocklocal_45e.innerHTML = hz45e+col+minz;
clocklocal_55e.innerHTML = hz55e+col+minz;
clocklocal_95e.innerHTML = hz95e+col+minz;
timerID = setTimeout("showtime()",200);//一秒钟自校对10次消除跳秒现象
timerRunning = true;
}

//-->

</script>
</strong></p>
</div>
<tr valign="bottom">
<td class="maintext" height="100"> </td>
</tr>
liumangaixue 2007-06-19
  • 打赏
  • 举报
回复
既然用到java了,为什么不从数据库里取系统时间呢,从网页上取时间有什么意义,写段简单代码取下系统时间再设成自己机器得系统时间不是更准确?
yongqiangcheng 2007-06-19
  • 打赏
  • 举报
回复
多谢你们的回复,因为这个是个嵌入式系统,断电之后,系统时间就没了。上电之后,能通过GPRS上网,可以访问外网,但是好像挺难连上时间服务器,因为用Unix的"NTP/服务器地址"命令,就同步不了时间。所以想从普通外网,例如google获取当前时间。
瓜瓜的方法在我的Windows机器上好使,希望在那个系统上也管用:),试试看先,然后回来报告,呵呵。
另外,有没有在Unix下运行的小工具?开机自动同步时间的,呵呵。
lever0066 2007-06-19
  • 打赏
  • 举报
回复
哈随便搜一下就能找到这个软件
lever0066 2007-06-19
  • 打赏
  • 举报
回复
哈哈只是解决问题,你又能上网,推荐你用Always Right这个工具,能同步时间,还能清理系统垃圾,哈哈连注册码都给你,name:syg
email:Team@EXPLOSiON
serial:$7305A2381l81821R176

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧