我正在调试Rails应用程序中的显示问题,该应用程序接受用户时区和计划时间的输入,并将其格式化为用户可读计划时间的字符串。在这种情况下,用户时区是Ekaterinburg,而奇怪的部分是显示的时间缩写在具有Ubuntu 16.04的AWS服务器和具有Yosemite的Macbook之间是不同的。 ruby版本都是相同的(2.2.6p396),两者都是相同的Rails应用程序(具有相同的Gemfile和Gemfile.lock)。这是我用来解析时区和时间的行:
ActiveSupport::TimeZone.new("Ekaterinburg").parse("11:29 am").strftime("%l:%M%p %Z")
服务器中显示的格式化时间为
“上午11:29 +05”
我本地计算机上显示的格式化时间是
“上午11:29 YEKT”
提前感谢任何帮助。
答案 0 :(得分:1)
根据the documentation on strftime
:
%z
- 时区作为UTC的小时和分钟偏移量(例如+0900)
%Z
- 缩写的时区名称或类似信息。 (依赖于操作系统)
如果您希望它保持一致,请使用%z
。