2017-02-23 101 views
0
>> Time.now.strftime("%Z") 
=> "CST" 
>> DateTime.now.strftime("%Z") 
=> "+08:00" 
>> DateTime.new(2017, 2, 1, 17, 30, 0, "PST").strftime("%Z") 
=> "-08:00" 

所以我想打印出時區名稱,所以我達到了strftime。但是,如果我給它一個DateTime,它的行爲就會有所不同。爲什麼會這樣?這是否意味着我不能使用DateTime.new來初始化特定時區的任意時間?strftime%Z在時間和日期時間上的行爲不同

回答

0

您可以設置一個DateTime的時區與in_time_zone:如果指定

DateTime.now.in_time_zone("Pacific Time (US & Canada)").strftime("%Z") 

Time將自動包括時區。

0

我遇到了同樣的問題。這似乎是原因:

  • Time知道其時區(我們可以得出從偏移量)
  • DateTime只知道它從UTC(這可能是超過 一個時區,因爲偏移菲尼克斯,亞利桑那州和加利福尼亞州舊金山是相同的,從UTC(-0700),但不同的時區(MST和PDT偏移,分別夏令時的不一致遵守)

例如,現在的兩)。

相關問題