回答編集履歴

1

テキスト修正

2018/06/05 12:50

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -53,3 +53,47 @@
53
53
  2018-10-01
54
54
 
55
55
  2018-10-10
56
+
57
+
58
+
59
+ ---
60
+
61
+ **補足**
62
+
63
+
64
+
65
+ 質問の趣旨から外れるかもしれませんが、`Date`のメソッドを使わずに、
66
+
67
+ `2018年4月1日`から、年月日それぞれの数字を取得するために正規表現を使い、
68
+
69
+ それらを `2018-04-01` にするのに、 [sprintf](https://docs.ruby-lang.org/ja/latest/doc/print_format.html) を使う手もあります。
70
+
71
+
72
+
73
+ ```ruby
74
+
75
+ %w[
76
+
77
+ 2018年4月1日
78
+
79
+ 2018年4月10日
80
+
81
+ 2018年10月1日
82
+
83
+ 2018年10月10日
84
+
85
+ ].each do |date_str|
86
+
87
+
88
+
89
+ if /^(\d{4})年(\d{1,2})月(\d{1,2})日$/ =~ date_str
90
+
91
+ puts sprintf('%4d-%02d-%02d',$1, $2, $3)
92
+
93
+ end
94
+
95
+
96
+
97
+ end
98
+
99
+ ```