我有这个DateTime:
=> Fri, 03 Feb 2012 11:52:42 -0500
Run Code Online (Sandbox Code Playgroud)
如何删除红宝石中的区域(-0500)?我只想要这样的东西:
=> Fri, 03 Feb 2012 11:52:42
Run Code Online (Sandbox Code Playgroud)
Phr*_*ogz 32
时间总是有一个区域(没有一个没有意义).您可以选择在打印时忽略它DateTime#strftime:
now = DateTime.now
puts now
#=> 2012-02-03T10:01:24-07:00
puts now.strftime('%a, %d %b %Y %H:%M:%S')
#=> Fri, 03 Feb 2012 10:01:24
Run Code Online (Sandbox Code Playgroud)
请参阅Time#strftime用于构造特定格式的奥术代码.
或者,您可能希望将DateTime转换为UTC以获得更一般的表示.
除了接受的答案之外,您还可以将相同的strftime参数添加到DATE_FORMATSRails 哈希中,从而允许您标准化应用程序中的输出格式。
在config/initializers/datetime_formats.rb:
Time::DATE_FORMATS[:nozone] = '%a, %d %b %Y %H:%M:%S'
Run Code Online (Sandbox Code Playgroud)
然后在您的代码中,您可以执行以下操作:
Time.zone.now.to_s(:nozone)
Run Code Online (Sandbox Code Playgroud)
您甚至可以将其设为默认值:
Time::DATE_FORMATS[:default] = '%a, %d %b %Y %H:%M:%S'
Time.zone.now.to_s
Run Code Online (Sandbox Code Playgroud)
还有一个单独的日期哈希:
Date::DATE_FORMATS[:default] = '%a, %d %b %Y'
Run Code Online (Sandbox Code Playgroud)
此功能已存在多年,但似乎鲜为人知。
| 归档时间: |
|
| 查看次数: |
25273 次 |
| 最近记录: |