Java 在浏览器中显示带有时区的客户端计算机日期和时间

Java 在浏览器中显示带有时区的客户端计算机日期和时间,java,javascript,jquery,date,datetime,Java,Javascript,Jquery,Date,Datetime,在我的JSP页面中,我试图显示带有时区的本地日期和时间。它可以是JavaScript、jQuery或JSTL,随便哪个都可以 我试过,但时间到了,即使我把时区改成了东部 我需要在美国东部夏令时5月22日上午10:34时使用此模式 有什么建议吗?如果您想知道客户机相对于GMT/UTC的时区,请点击这里: var d = new Date(); var tz = d.toString().split("GMT")[1].split(" (")[0]; // timezone, i.e. -0700

在我的JSP页面中,我试图显示带有时区的本地日期和时间。它可以是JavaScript、jQuery或JSTL,随便哪个都可以

我试过
,但时间到了,即使我把时区改成了东部

我需要在美国东部夏令时5月22日上午10:34时使用此模式


有什么建议吗?

如果您想知道客户机相对于GMT/UTC的时区,请点击这里:

var d = new Date();
var tz = d.toString().split("GMT")[1].split(" (")[0]; // timezone, i.e. -0700
var gmtRe = /GMT([\-\+]?\d{4})/; // Look for GMT, + or - (optionally), and 4 characters of digits (\d)
var d = new Date().toString();
var tz = gmtRe.exec(d)[1]; // timezone,    i.e. -0700
如果您想要时区的实际名称,可以尝试以下方法:

 var d = new Date();
 var tz = d.toString().split("GMT")[1]; // timezone, i.e. -0700 (Pacific Daylight Time)
var tzRe = /\(([\w\s]+)\)/; // Look for "(", any words (\w) or spaces (\s), and ")"
var d = new Date().toString();
var tz = tzRe.exec(d)[1]; // timezone, i.e. "Pacific Daylight Time"
更新1

根据的第一条注释,您还可以使用d.getTimezoneOffset()以分钟为单位从UTC获取偏移量。不过还是有几个问题

返回的分钟数的符号(+/-)可能与您预期的相反。如果您落后UTC 8小时,它将返回480而不是-480。有关更多文档,请参阅MDN或MSDN。 它实际上并没有返回客户端报告的时区,就像我给出的第二个示例一样。只是当前与UTC的分钟偏移量。因此,它将根据夏令时变化。 更新2

虽然字符串拆分示例可以工作,但阅读起来可能会感到困惑。这是一个regex版本,应该更容易理解,而且可能更快(尽管这两种方法都非常快)


如果您想知道客户机相对于GMT/UTC的时区,请点击这里:

var d = new Date();
var tz = d.toString().split("GMT")[1].split(" (")[0]; // timezone, i.e. -0700
var gmtRe = /GMT([\-\+]?\d{4})/; // Look for GMT, + or - (optionally), and 4 characters of digits (\d)
var d = new Date().toString();
var tz = gmtRe.exec(d)[1]; // timezone,    i.e. -0700
如果您想要时区的实际名称,请尝试以下操作:

 var d = new Date();
 var tz = d.toString().split("GMT")[1]; // timezone, i.e. -0700 (Pacific Daylight Time)
var tzRe = /\(([\w\s]+)\)/; // Look for "(", any words (\w) or spaces (\s), and ")"
var d = new Date().toString();
var tz = tzRe.exec(d)[1]; // timezone, i.e. "Pacific Daylight Time"

您可以使用Javascript日期对象获取客户端日期

var clientDate=new Date();
//对于day clientDate.getDate();
//用于月客户端。getMonth()

然后,通过使用

clientDate.getTimezoneOffset();
//This returns -120 for GMT+2,  

服务器和客户端是同一台机器吗?如果没有,您是否将客户端设置为Eastern?这不会影响jsp代码。如果这对您有效,请对此链接进行投票