私は現在、マネージ Bean から JavaScript に Date を渡す方法に取り組んでおり、それを format のタイマーとして表示します"hh:mm:ss aa"
。試してみましたが、うまくいきません。
コード: DateTimeManagmentMB.java
( Managed Bean
)
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import javax.annotation.PostConstruct;
@Named(value = "dateTimeManagmentMB")
@RequestScoped
public class DateTimeManagmentMB {
private String dateFormated = new String();
private Date date = new Date();
@PostConstruct
public void init() {
SimpleDateFormat df = new SimpleDateFormat("hh:mm:ss aa");
Calendar calendar = new GregorianCalendar();
calendar.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
dateFormated = df.format(calendar.getTime());
date = calendar.getTime();
}
public String getdateFormated() {
return dateFormated;
}
public void setdateFormated(String dateFormated) {
this.dateFormated = dateFormated;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
コード:time.xhtml
<h:head>
<script>
var myVar = setInterval(function() {
initTimer()
}, 1000);
function initTimer(date){
document.getElementById("timer").innerHTML = date.toLocaleTimeString();
}
</script>
</h:head>
<h:body onload="initTimer(#{dateTimeManagmentMB.date});">
<p id="timer"></p>
</h:body>
注, ここでやりたいことは、クライアントに依存するのではなく、サーバーに完全に依存して時間を使用および表示することです. この状況に対する別のアプローチがある場合は、それについて教えてください.