我想访问 run() 方法中的字符串变量并在 jsp 屏幕上显示该值。请注意,run() 方法中的字符串变量所保存的 value 每 1 秒更改一次,如下代码所示。因此我的要求是在屏幕上显示该值并动态更改该值。
(OR)
简单地说,我只想在 JSP 屏幕上显示 UTC 时钟时间,它每秒都会变化。
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();
}
}
最佳答案
使用 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()
,它会给您相同的东西,只是格式不同。
关于java - 在 JSP 屏幕上显示动态 UTC 时钟时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26610350/