如何在 strftime 方法中正确设置时间格式?

How to correctly set time format in strftime method?

我有以下方法

 <%= message.created_at.strftime("%H:%M") %>

目前 returns 21:00

我需要显示 Europe/Kiev 时区,该时区比通常的格林威治时区早 3 小时。如何在方法输入中设置?

如果您以 UTC 格式将时间存储在数据库中,那么当您获取时间时,该时间将始终以 UTC 格式显示。您需要根据用户的本地时区显示它。你必须使用 JavaScript 来做到这一点,检查这个 article.

或者如果您只需要基辅时区而不需要其他时区,您可以这样做:

<%= message.created_at.in_time_zone('Europe/Kiev').strftime("%H:%M") %>

你可以用一个漂亮的gem命名为"local_time"。它负责在您的视图中本地呈现时间。它也有非常好的文档。访问 https://github.com/basecamp/local_time