`

Java 获取网络时间并在jsp中显示

阅读更多

     开发中经常会遇到需要将服务器时间或者网络时间显示在浏览器上,在网上查找了好久也没找到一套完整的代码,自己花了点时间完成了,现总结下来,希望能给其他像我一样查找这个问题的人一个帮助。

     实现原理:

                 在页面加载的时候,调用Java方法取得最新的网络时间,然后将此网络时间赋到js的getTime方法中,在getTime方法中对取得的时间做分析和累加操作,最后将结果显示在jsp页面上。

     第一步,Java 获取网络时间

   

public class TimeUtil {
	/**
	* @author 2015-09-07 
	* @功能:获取网络最新时间
	* @return
	*/
	private static DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	public static String getDateTime(){

	try { 
	       NTPUDPClient timeClient = new NTPUDPClient(); 
	       InetAddress timeServerAddress = InetAddress.getByName("time-a.nist.gov");
	       TimeInfo timeInfo = timeClient.getTime(timeServerAddress); 
	       TimeStamp timeStamp = timeInfo.getMessage().getTransmitTimeStamp(); 
	        String date = dateFormat.format(timeStamp.getDate());
	        return date; 
	   } catch (UnknownHostException e) { 
	       e.printStackTrace(); 
	       return dateFormat.format(new Date());
	   } catch (IOException e) { 
	       return dateFormat.format(new Date());
	   }
	}
}

        第二步,将时间显示在jsp中

 

    

function add_zero(temp)  
{  
	if(temp<10){
		return "0"+temp;
	}else{
		return temp;
	}   
}  
//取得网络时间
function getTime(date){

 // 取服务器时分秒
 var date=new Date(date);
 
 var hour = date.getHours(); 
 var minuts = date.getMinutes();
 var second = date.getSeconds();   
 var week = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")[date.getDay()];
 var year = date.getFullYear(); //获取完整的年份(4位,1970-????)
 var month = date1.getMonth()+1; //获取当前月份(0-11,0代表1月)
 var day = date1.getDate(); //获取当前日(1-31)
 second++;
 if(second>=60){ //判断秒是否到60, 是则进位
    second = 0;
    minuts++;
    }
 if(minuts>=60){ //判断分是否到60, 是则进位
    minuts = 0;
    minuts++;
    }

    newdate=year+"-"+month+"-"+day+" "+hour+":"+minuts+":"+second;


    var display = year+"年"+month+"月"+day+"日 "+add_zero(hour)+":"+add_zero(minuts)+":"+add_zero(second)+" "+week;
   
    $("#dvSystemTime").html(display);
    setTimeout("getTime(newdate)", 1000); 
}
//页面加载时运行
window.onload=function(){
	var url = $.getContextPath("/getTime");
	$.ajax({   
	    url:url,   
	    type:'post',   
	    data:'',   
	    async : true, //默认为true 异步   
	    error: function (XMLHttpRequest, textStatus, errorThrown) {
       	 alert("报错啦!");
	    },   
	    success:function(data){
	    	getTime(data);
	    }
	});
}

    以上就是完整的获取网络时间,并将其显示在jsp页面上的代码,如有意见,欢迎广大博友指正。

 

   

0
2
分享到:
评论
1 楼 c30989239 2015-09-09  
注意 SimpleDateFormat 是非线程安全的

相关推荐

    java源码包---java 源码 大量 实例

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    Java开发技术大全(500个源代码).

    DumpMethods.java 使用反射机制来获取类中的方法 getClassName.java 利用反射机制获取类的名字 invokeConstructor.java 利用反射机制调用构造器 invokeMethod.java 利用反射机制调用成员方法 listConstructors....

    java源码包2

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java源码包4

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    java源码包3

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很...

    java开源包11

    JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。 Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升...

    java开源包6

    JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。 Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升...

    java开源包9

    JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。 Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升...

    java开源包4

    JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。 Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升...

    java开源包101

    JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。 Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升...

    java开源包5

    JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。 Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升...

    java开源包8

    JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。 Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升...

    java开源包10

    JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。 Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升...

    java jdk实列宝典 光盘源代码

    applications和applet,applications可以在控制台直接运行,与其他高级编程语言没有太大区别,而java的特色在于它具有编制小应用程序的功能,applet可以在internet上传输并在兼容java的web浏览器中运行的程序;...

    java 面试题 总结

    声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其...

    java开源包3

    JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。 Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升...

    java开源包1

    JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。 Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升...

Global site tag (gtag.js) - Google Analytics