Skip to content

Commit 1b7bdab

Browse files
authored
Merge pull request #23 from safareli/year
fix YYYY formatting
2 parents 6159472 + de3f422 commit 1b7bdab

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/Data/Formatter/DateTime.purs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ fix12 h = if h == 0 then 12 else h
156156

157157
formatCommand DT.DateTime FormatterCommand String
158158
formatCommand dt@(DT.DateTime d t) = case _ of
159-
YearFullshow $ fromEnum $ D.year d
159+
YearFullpadQuadrupleDigit $ fromEnum $ D.year d
160160
YearTwoDigits → formatYearTwoDigits $ fromEnum $ D.year d
161161
YearAbsolute → show $ fromEnum $ D.year d
162162
MonthFull → show $ D.month d
@@ -178,6 +178,8 @@ formatCommand dt@(DT.DateTime d t) = case _ of
178178
MillisecondsTwoDigits → padSingleDigit $ (_ / 10) $ fromEnum $ T.millisecond t
179179
Placeholder s → s
180180

181+
--TODO we need leftpad here
182+
181183
padSingleDigit Int String
182184
padSingleDigit i
183185
| i < 10 = "0" <> (show i)
@@ -189,6 +191,13 @@ padDoubleDigit i
189191
| i < 100 = "0" <> (show i)
190192
| otherwise = show i
191193

194+
padQuadrupleDigit Int String
195+
padQuadrupleDigit i
196+
| i < 10 = "000" <> (show i)
197+
| i < 100 = "00" <> (show i)
198+
| i < 1000 = "0" <> (show i)
199+
| otherwise = show i
200+
192201
format Formatter DT.DateTime String
193202
format f d = foldMap (formatCommand d) f
194203

test/src/DateTime.purs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ datetimeTest = describe "Data.Formatter.DateTime" do
1717
forAll (\a → a.format <> " | " <> a.dateStr)
1818
"formatDateTime/unformaDateTime should formatt/unforma dateTime"
1919
[ { format: "MM/DD/YYYY", dateStr: "04/12/2017" , date: makeDateTime 2017 4 12 11 3 4 234}
20+
, { format: "YYYY", dateStr: "0017" , date: makeDateTime 17 0 0 0 0 0 0}
2021
, { format: "MMMM", dateStr: "April" , date: makeDateTime 2017 4 12 11 3 4 234}
2122
, { format: "YYYY-DD-MM", dateStr: "2017-12-04" , date: makeDateTime 2017 4 12 11 3 4 234}
2223
, { format: "YYYY-MMM", dateStr: "2017-Apr" , date: makeDateTime 2017 4 12 11 3 4 234}

0 commit comments

Comments
 (0)