[从Alexa,我正在获得像2020-W9
这样的星期格式,但对于红宝石Date.parse
,我需要这种格式2020-W09
。我想知道什么是很好的红宝石解决方案。如果有一些内部库可以将W9
转换为W09
或某一行函数。
如果您知道确切的格式,则应使用strptime
而不是strptime
:
parse
require 'date'
Date.strptime('2020-W9', '%Y-W%W')
#=> #<Date: 2020-03-02 ((2458911j,0s,0n),+0s,2299161j)>
是4位数字的年份,%Y
是从星期一开始的几周的星期数。如果您的星期从星期日开始,也有%W
:
%U
这应该做:
Date.strptime('2020-W9', '%Y-W%U')
#=> #<Date: 2020-03-01 ((2458910j,0s,0n),+0s,2299161j)>
如果是一个数字,它只会在数字前放置一个"2020-W9".sub(/(?<=-W)(\d)\z/, '0\1') # => "2020-W09"
"2020-W19".sub(/(?<=-W)(\d)\z/, '0\1') # => "2020-W19"
。
您可以使用此
0