Java发送会议邮件 时区_关于java:在客户端/用户时区的电子邮件内容/正文中显示日期/时间/小时...

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

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

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

这里的第一个答案可能会有所帮助......stackoverflow.com/questions/9543580/… 但是,您必须将javascript嵌入到电子邮件中才能使其正常运行。

嵌入javascript不是一个选项,因为每个现代电子邮件客户端都会过滤掉javascript脚本。 如果我的应用用户将主要使用Gmail。 我试图在邮件中嵌入javascript脚本,并且通过忽略标签阻止gmail执行它们。 还有其他想法吗? 也许Gmail网络客户端会将某些html标签或特定格式的字符串解释为时间/小时,并自动为其添加客户端时区?

我不认为有,但如果你使用PHP并显示时间,那么你可以添加时间作为图像。 时间必须是动态的,这意味着如果用户在几小时后打开它,时间将会改变。

你能给我一些这个解决方案的文章/教程/代码示例吗? 或链接到服务,该服务根据url参数随时间返回生成的图像。

小规模研究后我自己的答案:

没有"真实解决方案"在电子邮件中显示用户时区的时间而没有关于他在后端的时区的信息,但有一些解决方法

说明:

所有现代电子邮件客户端都会过滤掉Javascript内容,因此不会

可以制作一个脚本,根据时间显示时间

客户时区

没有"魔术特工"给电子邮件客户端一些线索

html的一部分包含时间,它应该合理地格式化

办法。特别是Gmail没有这样的功能

解:

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

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

Statically - 有一个地方(输入),用户在其中指定他的时区。例如,首先登录或/和"设置"菜单中。

Dynamically - 用户时区是在他不知情的情况下动态获得的。例如,在通过Javascript获取每个登录用户时区后,发送到后端并保存在数据库中。

解决方法:

出于某种原因,您不想实施"真正的解决方案",有一些解决方法

最简单的方法是显示时间旁边有关时区的信息。

例如,20/07/2017 11:30提供的信息不足,因为我们不知道时区,但20/07/2017 11:30 (UTC+03)提供了用户需要的所有信息。如果他想在自己的时区里度过时间,他只需要自己做数学计算。

稍微复杂的做法是提供指向网页的链接,该链接在客户时区显示时间并获得参数时间。

例如:

https://some-time-resolving-service.com/time/20-07-2017/11/30

使用Javascript检查客户端时区,并根据参数和时区显示网站的时间。

互联网上有提供此类功能的服务。例如https://www.timeanddate.com/worldclock/,松散团队在其状态站点上用于显示读者时区中的事件,中断等时间。示例:https://www.timeanddate.com/worldclock/fixedtime.html?iso = 20181108T0035& p1 = 224我从此事件中获取:https://status.slack.com/2018-11/8abae7811317864c。

与第二点相同,但不是提供链接嵌入图像并使用返回图像的服务。

像那样:

30

或者像那样:

<5233>。

我不确定它是否有效。

所以看起来没有解决方案。 后端保存不可靠,因为用户可能正在旅行或刚刚结束旅行并返回家中。 我们需要在这个地方的时区以及他查看我们界面的那一刻。 所以我会提到UTC,虽然我不喜欢它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值