gpt4 book ai didi

ruby - 按键对包含字符串格式日期的散列进行排序

转载 作者:数据小太阳 更新时间:2023-10-29 08:27:21 25 4
gpt4 key购买 nike

我有一个包含字符串格式的日期的散列 -

{Oct 2014: "some value", Aug 2012: "some value", July 2011: "new value"}

我想根据这些对它们进行排序。我尝试调用 sort_by 或对键进行排序,但由于它们以字符串格式存储,因此它按字母顺序对它们进行排序。

hash_name.keys.sort

这给了我 2012 年 8 月、2011 年 7 月、2014 年 10 月的顺序。虽然我试图按照年份和月份的顺序对它们进行排序 --- 2011 年 7 月、2012 年 8 月、2014 年 10 月

最佳答案

使用strptime将每个 key 转换为 Date 对象的方法:

require 'date'
hash = {
'Oct 2014' => "some value",
'Aug 2012' => "some value",
'July 2011' => "new value"
}
hash.sort_by { |k,_| Date.strptime(k,"%b %Y") }
# => [["July 2011", "new value"],
# ["Aug 2012", "some value"],
# ["Oct 2014", "some value"]]

注意:

  • %b - 缩写的月份名称('Jan')

  • %Y - 带世纪的年份(可以为负数,至少 4 位数字)- 0001、0000、1995、2009、14292 等

关于ruby - 按键对包含字符串格式日期的散列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com