如何检测客户端的时区?
如何在jsp中获取客户端/请求时区?
不幸的是,这些信息不会在HTTP标头中传递。
通常,您需要配合JavaScript来为您获取它。
Web上有很多例子,这里有一个http://www.coderanch.com/t/486127/JSP/java/Query-timezone
你不能得到时区,但你可以从客户端获得当前时间。通过javascript而不是回复。 在服务器端,您可以将该时间转换为GMT / UTC。 UTC显示TimeZone。
如果您只需要本地时区以向用户显示本地时间,我建议您使用UTC表示服务中的所有时间,并使用Moment.js在浏览器中将它们作为本地时间呈现 。
我的一般规则是以UTC处理和存储时间,除了与用户的接口,您转换为/从本地时间。 UTC的优势在于您永远不必担心夏令时调整。
请注意,如果您想显示某些内容的年龄(例如“3小时前发布”),您只需将UTC时间戳与当前UTC时间进行比较即可; 根本不需要转换为当地时间。
对我来说最好的解决方案是将日期/时间作为字符串发送,然后使用服务器的时区进行解析以获取时间戳。 时间戳总是UTC(或应该是),因此您不需要客户端的TimeZone。
例如,发送“10/07/2018 12:45”可以解析为:
SimpleDateFormat oD = new SimpleDateFormat(); oD.applyPattern("dd/MM/yyyy HH:mm"); oD.setTimeZone(TimeZone.getDefault()); // ;) Date oDate = oD.parse(request.getParameter("time"));
显然,您可以设置特定的日期/时间格式。
- Eclipse kepler – 禁用javascriptvalidation
- altDeploymentRepository和altReleaseDeploymentRepository之间的区别
- GWT的最佳数据绑定解决方案
- javax.persistence对field,getter或setter的注释?
- 如何配置selenium webdriver以使用自定义firefox设置进行测试?
- 将Java PriorityQueue转换为稳定的优先级队列
- 为什么C#和Java要求所有东西都在一个类中?
- 如何在Swing中暂时禁用事件监听器?
- 通过Spring Config将“HardCoded”构造函数Arg Class 传递给bean