2017-08-22 35 views
1

我正在調試Rails應用程序中的一個顯示問題,該應用程序需要輸入用戶時區和預定時間,並將其格式化爲用戶可讀的預定時間字符串。在這種情況下,用戶時區是葉卡捷琳堡,奇怪的是,顯示的時間縮寫與使用Ubuntu 16.04的AWS服務器和使用優勝美地的我的Macbook不同。 Ruby版本都是相同的(2.2.6p396),兩者都是相同的Rails應用程序(具有相同的Gemfile和Gemfile.lock)。這是我用它來解析時區和時間線:Strftime在不同的機器/服務器上顯示不同時區的縮寫

ActiveSupport::TimeZone.new("Ekaterinburg").parse("11:29 am").strftime("%l:%M%p %Z") 

在服務器中顯示格式化的時間是

「上午11時29 +05」

雖然顯示在本地機器上的格式化時間爲

「11:29 AM YKT」

任何幫助表示讚賞,在此先感謝。

+0

您的本地機器在tzdata更新後面。請參閱dup答案,以及[此提交](https://github.com/eggert/tz/commit/1ac038c2c3f25f7211474ae08feb6afb820e35fe)和[本公告](http://mm.icann.org/pipermail/tz-announce/2016 - 九月/ 000041.html)從tzdb。 –

+0

謝謝! tzdata對我來說絕對是新的。 – nayiaw

回答

1

作爲每the documentation on strftime

%z - UTC的偏移量時區小時和分鐘(例如0900)

%Z - 縮寫時區的名稱或類似的信息。 (取決於操作系統)

如果您希望它一致,請使用%z

相關問題