如何为 Google 课堂课程设置正确的时区

Posted

技术标签:

【中文标题】如何为 Google 课堂课程设置正确的时区【英文标题】:How to set correct timezone for Google Clas-s-room coursework 【发布时间】:2019-05-06 20:06:20 【问题描述】:

通过 Clas-s-room API 创建新课程作业时,可以添加“到期”日期和时间( Clas-s-room API TimeOfDay reference ) 并且说明说“日期和时区要么不重要,要么在其他地方指定。”。

在上课的情况下,我的期望是发送的数字是显示的数字(老师通常知道“上午 11 点”对班级意味着什么)。

然而,实际发生的是与API通信的服务器所在的时区用于解释时间。 IE。如果教师距离后端服务器两个时区,则时间将超过两个小时。

文档有误吗?还是有一些我找不到的“指定其他地方”的方法?

【问题讨论】:

AFAIK,这在 API 中尚不可用。尝试为此发布feature request,它可以帮助支持多个时区的班级(在不同时区学习的学生)。 会的。你知道BTW它实际上在做什么吗?更多的实验似乎表明它正在服务器时区(我的是UTC)和......其他东西之间进行转换。创建类时使用的时区? 【参考方案1】:

这个问题有点老了,但我刚刚遇到了一些相同的问题,所以在这里回复以防其他人需要帮助...

目前尚不完全清楚您是如何根据原始问题格式化创建请求的。 TimeOfDay 对象用于设置dueTime,如文档中所述,CourseWork 创建请求的所有日期和时间都应转换为UTC:https://developers.google.com/clas-s-room/reference/rest/v1/courses.courseWork

即您需要根据您的应用程序/用户需要进行任何转换为​​ UTC,Google 课堂 UI 会自动将此日期/时间转换为用户的本地/日期时间。目前没有其他方法可以使用此 API 执行此操作

根据您的应用程序/UI 的设置方式,正确实施这一点可能会变得很棘手,并且会因夏令时等变化而变得更加复杂。例如,如果您使用 javascript,则 JS 日期在内部使用 UTC,用户的浏览器会跟踪该用户的当前时间,并且当前没有其他任何其他时区的内置功能。请参阅下面关于此(以及各种解决方法)的一些非常出色的解释:

Calculate the UTC offset given a TimeZone string in JavaScript get timezone offset of another timezone in javascript without using Strings How to initialize a JavaScript Date to a particular time zone

我希望这至少有点帮助。如果没有更多信息,很难具体回答您关于“正在发生的事情”的问题:)

【讨论】:

以上是关于如何为 Google 课堂课程设置正确的时区的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Google 课堂分享按钮使用圆形徽标?

如果指定了邮政地址,如何为 Google Maps JavaScript API 版本 3 设置正确的标题?

如何为每个线程设置时区? [关闭]

如何为 JDBC Connection 设置时区,避免找不到 SqlException 时区?

如何为 ClickHouse jdbc 连接设置会话时区?

如何为 AWS RDS 实例设置数据库时区 [重复]