Ruby strftime - 显示季度+年

时间:2018-04-06 01:17:45

标签: ruby date

我想用季度和年份格式化日期,例如

2018年第一季度

有没有办法用strftime或I18n.l做到这一点?我在文档中看不到任何RE宿舍。

我一直在做

df3 = df1.iloc[np.where(df1.age1 == df2['age1'])]

但这不是一个好方法,因为它不容易本地化(例如我们的一些白标合作伙伴可能希望以不同方式格式化日期而不是使用季度)

1 个答案:

答案 0 :(得分:1)

听起来您已经知道如何计算季度,但您不确定如何组织代码以允许灵活格式化而无需对使用季度的特定格式进行硬编码。

您需要strftime为季度设置“格式化指令”(例如%q

可以覆盖strftime以添加新指令,但通常最好避免覆盖此类指令。

相反,我建议您定义自己的格式化模块,该模块会理解%q并在strftime上搭载其他所有内容:

module MyDateFormatter
  def self.format_date(date, format)
    quarter = get_quarter(date)
    date.strftime(format.gsub("%q", "Q#{quarter}"))
  end

  def self.get_quarter(date)
    # Put whatever quarter calculation you want to use here
  end
end

想要使用季度的客户可以拥有包含特殊%q指令的格式字符串,而不想要季度的客户可以使用不使用%q的格式字符串。< / p>