Rails 使用#{DateTime.now} 重新格式化日期时间
Rails DateTime re-format using #{DateTime.now}
我在 Rails 中有一项任务导出一个 xml,但我在其中有一行
tmp_filename="#{Rails.root}/tmp/orders-#{o.id}-#{DateTime.now}.xml"
这会输出文件名类似于
的 xml 文件
orders-42-2015-01-28T17:22:35+00-00.xml
这是它直接上传到 amazon s3 时的显示方式,问题是我需要去掉冒号,只添加破折号,因为获取这些文件的系统不能正常使用冒号在文件名中。
奇怪的是,当我从 s3 下载文件时,它下载为破折号。
我不确定如何或是否可以在 #{} 上使用 strftime
任何人都可以帮助我做的事情。或者,如果这只是一个 amazon s3 的东西,并且文件实际上是用 - 而不是 : already 生成的。
Strftime 在 amazon s3 上似乎不起作用,即使添加
文件仍以原始格式上传
tmp_filename="#{Rails.root}/tmp/orders-#{o.id}-#{DateTime.now.strftime('%d-%m-%Y-%H%M%S')}.xml"
而且由于某些我无法摆脱的原因,它还在最后添加了一个额外的 +00:00
你不能只格式化不带冒号的 DateTime,例如:
tmp_filename="#{Rails.root}/tmp/orders-#{o.id}-#{DateTime.now.strftime('%Y-%m-%d-%H-%M-%S')}.xml"
有了这个,您将获得如下格式的时间,不带冒号:
irb(main):010:0> DateTime.now.strftime('%Y-%m-%d-%H-%M-%S')
=> "2015-01-29-10-50-30"
我在 Rails 中有一项任务导出一个 xml,但我在其中有一行
tmp_filename="#{Rails.root}/tmp/orders-#{o.id}-#{DateTime.now}.xml"
这会输出文件名类似于
的 xml 文件orders-42-2015-01-28T17:22:35+00-00.xml
这是它直接上传到 amazon s3 时的显示方式,问题是我需要去掉冒号,只添加破折号,因为获取这些文件的系统不能正常使用冒号在文件名中。
奇怪的是,当我从 s3 下载文件时,它下载为破折号。 我不确定如何或是否可以在 #{} 上使用 strftime 任何人都可以帮助我做的事情。或者,如果这只是一个 amazon s3 的东西,并且文件实际上是用 - 而不是 : already 生成的。
Strftime 在 amazon s3 上似乎不起作用,即使添加
文件仍以原始格式上传tmp_filename="#{Rails.root}/tmp/orders-#{o.id}-#{DateTime.now.strftime('%d-%m-%Y-%H%M%S')}.xml"
而且由于某些我无法摆脱的原因,它还在最后添加了一个额外的 +00:00
你不能只格式化不带冒号的 DateTime,例如:
tmp_filename="#{Rails.root}/tmp/orders-#{o.id}-#{DateTime.now.strftime('%Y-%m-%d-%H-%M-%S')}.xml"
有了这个,您将获得如下格式的时间,不带冒号:
irb(main):010:0> DateTime.now.strftime('%Y-%m-%d-%H-%M-%S')
=> "2015-01-29-10-50-30"