2016-12-07 43 views
2
Time.now #=> 2007-11-19 08:27:30 -0600 

抵消我想要得到的時區Time.now偏移。如果它存在,歡迎使用本地ruby函數。如何獲取時區從Time.now

我的嘗試:

Time.now.to_s.byteslice(-5..-1) #=> "-0600" as String 

它適合我的時區(GET + 1),但我想找到一個更好的辦法。

+0

注:'Time.now.to_s.byteslice(-3)'只適用於正時區數字0到9之間 –

+0

如果你的時區是'+ 1200',你會期望'2'還是'12'? 「+05:45」的預期結果是什麼? '5'(截尾),'6'(圓整)或'5.75'(其十進制表示) – Stefan

+0

如果我的時區是「+ 1200」,我想得到'12'。 –

回答

5

你可以用它

Time.now.strftime('%z') 
+0

謝謝你的快速回答。它指向我找到我的最終答案:'Time.now.strftime('%:z')'。 –

+0

'%:z - 用分號(例如+09:00)表示UTC與UTC的小時和分鐘偏移量' –

+0

'%:: z - UTC的小時,分​​鍾和秒偏移量(例如+09:00:00) –