Ruby/Rails makalesinde, UTC DateTime öğelerini başka bir zaman dilimine nasıl dönüştürebilirim?Raylar: UTC DateTime öğesinin başka bir zaman dilimine dönüştürülmesi
cevap
time.in_time_zone(time_zone)
Örnek:
zone = ActiveSupport::TimeZone.new("Central Time (US & Canada)")
Time.now.in_time_zone(zone)
ya da sadece
Time.now.in_time_zone("Central Time (US & Canada)")
Sen yaparak ActiveSupport zaman dilimleri isimlerini bulabilirsiniz:
ActiveSupport::TimeZone.all.map(&:name)
# or for just US
ActiveSupport::TimeZone.us_zones.map(&:name)
ActiveSupport en TimeWithZone nesneleri deneyin dalavereler TimeZone ile ated. ActiveSupport ayrıca bir UTC saatini belirli bir TimeZone saat dilimine dönüştürmek için in_time_zone yöntemini sağlar. mckeed'in cevabı kodu gösterir.
TimeWithZone'u sınıfıma aktarmak için sözdizimi nedir? Yoksa varsayılan olarak Rails ile mi alabilirim? –
Varsayılan olarak alacağınıza inanıyorum. mckeed ihtiyacınız olan kodu var, ama bunu irb içinde görmeyeceksiniz. Rails'de koşmalısın. – Fred
Haklısınız - teşekkürler, Fred - varsayılan olarak Rails ile geliyor. Samanlıkta çalışıyorum, bunu irb'da çalışmayı denedim. –
Rails 4'te simple_form kullanıyorum ve sadece göçle
<%= f.input :time_zone, :as => :time_zone %>
olarak giriş alanını eklendi
class AddTimeZoneColumnToTextmessage < ActiveRecord::Migration
def change
add_column :textmessages, :time_zone, :string
end
end
Sadece durumda, Rails ActiveRecord nesnesi ile ilgileniyor eğer .
de açıklamak config.time_zone
Daha detaylı olarak ayarlanan varsayılan zaman dilimini geçersiz kılan bir istek başına temeli Zaman dilimi için Time.use_zone
kullanmak iyi bir fikir olabilir Time.zone
eğer o zaman istediğiniz saat dilimi var sen Ben Time.now.in_time_zone ('CST') çalıştığınızda irb olarak @date.to_time.to_datetime
> @date
=> Tue, 02 Sep 2014 23:59:59 +0000
> @date.class
=> DateTime
> @date.to_time
=> 2014-09-02 12:59:59 -1100
> @date.to_time.to_datetime
=> Tue, 02 Sep 2014 12:59:59 -1100
Rails 5 üzerinde çalışıyor ' Time.zone # => Avrupa/Paris my_date # => Çar, 29 Mar 2017 19:00:20 +0200 my_date.to_time # =>" 2017-03-29T17 : 00: 20.000 + 00: 00 " my_date.to_time.to_datetime # => Çar, 29 Mar 2017 17:00:20 +0000 " –
- 1. MySQL, kayıtlı bir UTC saatini yerel saat dilimine dönüştürebilir mi?
- 2. Bir NSObject öğesinin NSData'ya dönüştürülmesi
- 3. Openlayers öğesinin koordinatlarının dönüştürülmesi
- 4. Python: Yerel saati başka bir zaman dilimine dönüştür
- 5. JsonNode öğesinin ObjectNode'a dönüştürülmesi
- 6. Veritabanından UTC zaman damgasını veritabanına giriş tarihine datetime olarak kaydetme
- 7. amqp_cstring_bytes öğesinin C dizesine dönüştürülmesi
- 8. Dizeyi UTC ofsetiyle bir datetime nesnesine dönüştürme
- 9. BitmapImage öğesinin Bayt dizisine dönüştürülmesi
- 10. Newtonsoft.Json.Linq.JArray öğesinin belirli bir nesne türüne dönüştürülmesi
- 11. Bir time_t öğesinin NSDate nesnesine dönüştürülmesi?
- 12. SQLAlchemy DateTime zaman dilimi
- 13. Dönüştürme OffsetDateTime UTC zaman damgası
- 14. utc saat dizgesini datetime nesnesine dönüştürme
- 15. zaman dilimi ve UTC
- 16. biçimi GMT/UTC zaman olarak
- 17. Java MouseEvent öğesinin ActionEvent uygulamasına dönüştürülmesi ActionScript
- 18. Java 8 Verilen zaman ve zaman dilimini UTC zamanına dönüştürme
- 19. Bir UTC zaman damgasını ABAP'ta sistem tarihine ve saatine dönüştürme
- 20. Bir Excel Çalışma Sayfasında Zaman Dilimlerinin Dönüştürülmesi
- 21. datetime jascript
- 22. datetime
- 23. Ayrıştırma DateTime bilinen ama ayrıştırma tarih ve zaman etrafında bir sorun ile şaşırıp saat dilimini
- 24. Bir zaman dilimi ile yerel saat dilimine dönüştürme tarihi
- 25. DataContractJsonSerializer DateTime örtülü zaman dilimi dönüşümü
- 26. Unix zaman damgasının Joda Time ile String'e dönüştürülmesi
- 27. Geçerli saat dilimine göre tarih/saat olarak UTC tarih/saatini göster
- 28. dizesinde bir UTC zamanı üretir
- 29. SensorEvent.timestamp mutlak (utc) zaman damgası mı?
- 30. Java 8 UTC ve Zulu zaman eşitliği?
kullanabilirsiniz, ben "tanımsız yöntem 'in_time_zone'" hatası alıyorum. Bunu işe almak için ihtiyacım olan ray sınıfları var mı? –
Rails hangi versiyonunu kullanıyorsunuz? Time.zone.now.in_time_zone (...) yaparsanız çalışır mı? – mckeed
Kod örneği için çok teşekkürler. Bu onu (Fred'in yorumu ile birlikte) temizledi. Çok fazla şey yanlış yapıyordum, ben bile açıklamaya bile başlayamıyorum :-) –