在JSP屏幕上显示动态UTC时钟时间

时间:2014-10-28 14:04:22

标签: java javascript jsp clock runnable

我想在run()方法中访问字符串变量,并在jsp屏幕上显示该值。请注意,run()方法中的字符串变量所保存的值每1秒更改一次,如下面的代码所示。因此我的要求是在屏幕上显示值并动态更改值。

                              (OR)

简单来说,我想要显示的是UTC时钟,它在JSP屏幕上每隔一秒更改一次。

public class Clock implements Runnable {

    JLabel jb;

//Constructor takes the clock JLabel
    public Clock(JLabel jb) {
        this.jb = jb;
    }


    public void run() {
        while (true) {
            try {
                //Thread sleeps & updates ever 1 second, so the clock changes every 1 second.
                jb.setText(timeNow());
                String dynaStr= timeNow();
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
                System.out.println(ex);
            }
        }
    }
      public String timeNow() {
Calendar c = Calendar.getInstance();

    TimeZone z = c.getTimeZone();
    int offset = z.getRawOffset();
    if(z.inDaylightTime(new Date())){
        offset = offset + z.getDSTSavings();
    }
    int offsetHrs = offset / 1000 / 60 / 60;
    int offsetMins = offset / 1000 / 60 % 60;

    System.out.println("offset: " + offsetHrs);
    System.out.println("offset: " + offsetMins);

    c.add(Calendar.HOUR_OF_DAY, (-offsetHrs));
    c.add(Calendar.MINUTE, (-offsetMins));

    System.out.println("GMT Time: "+c.getTime());
    return c.getTime().toString();
}
}

1 个答案:

答案 0 :(得分:3)

使用javascript而不是java。一个例子是:

var myVar=setInterval(function () {myTimer()}, 1000);
function myTimer() {
    var date = new Date();
    document.getElementById("demo").innerHTML = date.toISOString();
}

演示是你的div或用于显示的任何东西。

这是完整功能的代码,只需复制并粘贴到文本文档中,并将扩展名从txt更改为html或(jsp)。然后双击以在浏览器中运行。

<html>
<head>
<title></title>

<script type="text/javascript">
var myVar=setInterval(function () {myTimer()}, 1000);
var counter = 0;
function myTimer() {
    var date = new Date();
    document.getElementById("demo").innerHTML = date.toISOString();
}
</script>

</head>
<body>
   <span id="demo"></span>
</body>
</html>

您也可以使用date.toUTCString(),它会为您提供不同格式的相同内容。