gpt4 book ai didi

java - 在客户端/用户时区的电子邮件内容/正文中显示日期/时间/小时

转载 作者:行者123 更新时间:2023-11-29 04:28:06 28 4
gpt4 key购买 nike

我有一个用 Java 编写的 Web 应用程序。它使用 Spring 和 Freemarker 从模板生成电子邮件,并使用 Spring JavaMailSender 发送它们。

我发送的电子邮件在其内容中包含时间。问题是服务器以 UTC+00 时区存储时间,而客户端可能有不同的时区,例如 UTC+03。例如,在电子邮件内容中有 20/07/2017 11:30 (UTC+00),但收件人预计 20/07/2017 14:30 (UTC+03)。

我的问题是:是否可以在客户端时区的电子邮件内容中显示时间,而服务器端没有关于他的时区的信息?例如,是否有一些技巧可以告诉电子邮件客户端在他的时区中解释给定时间?

最佳答案

我自己的小研究后​​的答案:

没有“真正的解决方案”可以在电子邮件中显示用户时区的时间,而无需在后端获取有关他的时区的信息,但是有一些解决方法

解释:

  • 所有现代电子邮件客户端都会过滤掉 Javascript 内容可以制作一个脚本来显示基于时移的时间客户时区。
  • 没有“魔术”可以给电子邮件客户端一些线索部分 html 包含时间,应以适当的格式进行格式化方式。具体来说,Gmail 没有这样的功能。

解决方案:

在后端存储用户时区(我们向其发送电子邮件的用户)。

他们的时区可以通过两种方式保存:

  • Statically - 有一个地方(输入),用户可以在其中指定他的时区。例如,首次登录和/或“设置”菜单。
  • Dynamically - 用户时区是在他不知情的情况下动态获取的。例如每次登录后通过Javascript获取用户时区,发送到后端并保存在数据库中。

解决方法:

当出于某种原因您不想实现“真正的解决方案”时,有一些解决方法

  1. 最简单的方法是显示时间,并在旁边显示时区信息。
    例如20/07/2017 11:30提供的信息不足,因为我们不知道时区,但是 20/07/2017 11:30 (UTC+03)提供用户需要的所有信息。如果他想要自己所在时区的时间,他只需自己计算即可。

  2. 有点复杂的做法是提供一个网页链接,该网页显示客户端时区的时间并在参数中获取时间。
    例如:
    https://some-time-resolving-service.com/time/20-07-2017/11/30
    使用 Javascript 检查客户端时区,并根据参数和他的时区显示带有时间的网站。
    Internet 上有提供此类功能的服务。例如https://www.timeanddate.com/worldclock/由 slack 团队在其状态站点上使用,以在读者时区中显示事件、中断等的时间。示例:https://www.timeanddate.com/worldclock/fixedtime.html?iso=20181108T0035&p1=224我从这个事件中得到的:https://status.slack.com/2018-11/8abae7811317864c .

  3. 执行与第二点相同的操作,但不是提供链接而是嵌入图像并使用返回图像的服务。
    像那样:
    <img src="https://some-time-resolving-service.com/timeimage/20-07-2017/11/30" alt="Time in the right timezone" height="50" width="100">
    或者像那样:
    <img src="https://some-time-resolving-service.com/timeimages/20-07-2017-11-30.png" alt="Time in the right timezone" height="50" width="100"> .
    我不确定它是否有效。

关于java - 在客户端/用户时区的电子邮件内容/正文中显示日期/时间/小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45215577/

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