大家好我正在使用Ruby脚本发送依赖Net :: SMTP的错误邮件(https://github.com/u-ichi/fluent-plugin-mail/blob/master/lib/fluent/plugin/out_mail.rb)。时间是使用“Time :: now.strftime(”%a,%d%b%Y%X%z“)”,
获得的...
smtp.send_mail(<<EOS, @from, @to.split(/,/), @cc.split(/,/), @bcc.split(/,/))
Date: #{Time::now.strftime("%a, %d %b %Y %X %z")}
From: #{@from}
To: #{@to}
Cc: #{@cc}
Bcc: #{@bcc}
Subject: #{subject}
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
#{body}
EOS
smtp.finish
不幸的是,我收到的邮件时间不对。我不知道Time :: now.strftime是如何工作的,但我想他们从服务器中选择时间?我在CentOS上检查了服务器的“日期”,发现没有错误...
还有其他方法可以抽出时间吗?
答案 0 :(得分:2)
您应该在特定时区转换此时间。像:
time_zone = ActiveSupport::TimeZone.new(your_desire_time_zone)
converted_time = time.in_time_zone(time_zone)
或以UTC格式转换
converted_time = Time.now.utc
然后尝试使用strftime
converted_time.strftime("%a, %d %b %Y %X %z")
有关详细信息,请查找here。感谢。