2023-08-14 08:22PM
想要把 Time.now 转换为北京时间,需要先把它转换为东八区时间。
可以使用 ActiveSupport::TimeZone 类来完成此操作。
以下是具体操作步骤:
在 config/application.rb 中设置默认时区为北京时间:
config.time_zone = 'Beijing'
在controller使用 in_time_zone 方法将当前时间转换为北京时间,并格式化为字符串:
@time = Time.now.in_time_zone.strftime("%H:%M:%S")
这样就可以将当前时间转换为北京时间,并以指定格式显示出来。
原因:
要显示北京时间,可以使用ActiveSupport库中的TimeWithZone和in_time_zone方法来实现。首先需要将当前时间转化为北京时区,然后再格式化为字符串,示例如下:
require 'active_support/time'
beijing_time = Time.now.in_time_zone('Beijing')
formatted_time = beijing_time.strftime('%H:%M:%S')
puts formatted_time # 输出格式化后的北京时间
在上面的代码中,我们先使用require 'active_support/time'导入ActiveSupport库,然后使用in_time_zone方法将当前时间转化为北京时区的时间。in_time_zone方法需要传入一个时区名,这里我们使用字符串'Beijing'来表示北京时区。转化后的时间将自动考虑到北京的夏令时、冬令时等因素。
最后,我们使用strftime方法将北京时间格式化为字符串,格式为'%H:%M:%S'表示小时、分钟和秒数。将格式化后的时间输出,即可得到北京时间的字符串表示。
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论