是否可以在收件人的时区显示时间?
Is it possible to display times in the recipient's timezone?
我有一个 webhook 可以将消息发布到 Slack 频道。有没有办法确保消息中提到的时间以用户的本地时区显示?
根据 slack API 文档,chat.postMessage
方法 returns 一个 JSON 与这里
类似的响应
{
"ok": true,
"ts": "1405895017.000506",
"channel": "C024BE91L",
"message": {
...
}
}
所以,我想您可以解析并获取时间戳并根据需要对其进行格式化。这里是 link 到 slack api postMessage API documentation。顺便提一下,ts
是上述 JSON 响应中的时间戳。
似乎无法在共享频道中显示用户所在时区的日期。尽管 Linux 和 Android 的 Slack 客户端似乎都使用嵌入式浏览器作为其 UI 的平台,但我们无法 运行 JS客户端,这意味着我们不能做任何动态的事情,比如查找本地 TZ。
如果消息是直接发送给单个用户的消息,那么 codehat 的答案会起作用,但如果我们不希望频道消息和直接消息之间的时区不同。
Slack 的 API 允许您使用特殊占位符输出用户时区的时间。请参阅 API 文档中的 Formatting Dates。
如 https://api.slack.com/reference/surfaces/formatting#date-formatting 中所述,您可以使用特殊日期表示法 <!date^timestamp^token_string^optional_link|fallback_text>
以使用查看器本地 TZ 显示时间。
GO 的一个片段,我用它来为 slack 设置时间格式:
func SlackFormat(t time.Time) string {
return `<!date^` + strconv.FormatInt(t.Unix(), 10) + `^{date_num} {time}|` + t.Format(time.RFC3339) + `>`
}
我有一个 webhook 可以将消息发布到 Slack 频道。有没有办法确保消息中提到的时间以用户的本地时区显示?
根据 slack API 文档,chat.postMessage
方法 returns 一个 JSON 与这里
{
"ok": true,
"ts": "1405895017.000506",
"channel": "C024BE91L",
"message": {
...
}
}
所以,我想您可以解析并获取时间戳并根据需要对其进行格式化。这里是 link 到 slack api postMessage API documentation。顺便提一下,ts
是上述 JSON 响应中的时间戳。
似乎无法在共享频道中显示用户所在时区的日期。尽管 Linux 和 Android 的 Slack 客户端似乎都使用嵌入式浏览器作为其 UI 的平台,但我们无法 运行 JS客户端,这意味着我们不能做任何动态的事情,比如查找本地 TZ。
如果消息是直接发送给单个用户的消息,那么 codehat 的答案会起作用,但如果我们不希望频道消息和直接消息之间的时区不同。
Slack 的 API 允许您使用特殊占位符输出用户时区的时间。请参阅 API 文档中的 Formatting Dates。
如 https://api.slack.com/reference/surfaces/formatting#date-formatting 中所述,您可以使用特殊日期表示法 <!date^timestamp^token_string^optional_link|fallback_text>
以使用查看器本地 TZ 显示时间。
GO 的一个片段,我用它来为 slack 设置时间格式:
func SlackFormat(t time.Time) string {
return `<!date^` + strconv.FormatInt(t.Unix(), 10) + `^{date_num} {time}|` + t.Format(time.RFC3339) + `>`
}