gpt4 book ai didi

java - 在浏览器中显示客户端计算机的日期和时间以及时区

转载 作者:行者123 更新时间:2023-11-30 08:10:52 26 4
gpt4 key购买 nike

在我的 JSP 页面中,我尝试显示带有时区的本地日期和时间。它可以是 JavaScript、jQuery 或 JSTL,只要简单即可。

我试过<fmt:formatDate value="<%= new java.util.Date() %>" pattern="MMM d, hh:mm a z"/>但 CDT 时间即将到来,即使我将时区更改为东部。

我需要这种模式May 22, 10:34 AM EDT .

有什么建议吗?

最佳答案

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

var d = new Date();
var tz = d.toString().split("GMT")[1].split(" (")[0]; // timezone, i.e. -0700

如果您想要时区的实际名称,您可以尝试以下操作:

 var d = new Date();
var tz = d.toString().split("GMT")[1]; // timezone, i.e. -0700 (Pacific Daylight Time)

更新1

根据第一条评论,您还可以使用 d.getTimezoneOffset() 获取与 UTC 的分钟偏移量。不过有几个问题。

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

虽然字符串分割示例有效,但阅读起来可能会令人困惑。这是一个正则表达式版本,应该更容易理解并且可能更快(尽管两种方法都非常快)。

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

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 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"

关于java - 在浏览器中显示客户端计算机的日期和时间以及时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30398861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com