Просмотр исходного кода

Support ISO-8601 date formatting

Evan Miller 14 лет назад
Родитель
Сommit
3487fddc8c
2 измененных файлов с 18 добавлено и 8 удалено
  1. 10 0
      src/erlydtl/erlydtl_dateformat.erl
  2. 8 8
      src/tests/erlydtl_dateformat_tests.erl

+ 10 - 0
src/erlydtl/erlydtl_dateformat.erl

@@ -6,6 +6,7 @@
     C =:= $A orelse
     C =:= $b orelse
     C =:= $B orelse
+    C =:= $c orelse
     C =:= $d orelse
     C =:= $D orelse
     C =:= $f orelse
@@ -92,6 +93,15 @@ tag_to_value($A, _, _) -> "AM";
 tag_to_value($B, _, _) ->
    ""; % NotImplementedError
 
+% ISO 8601 Format.
+tag_to_value($c, Date, Time) ->
+    tag_to_value($Y, Date, Time) ++ 
+    "-" ++ tag_to_value($m, Date, Time) ++ 
+    "-" ++ tag_to_value($d, Date, Time) ++ 
+    "T" ++ tag_to_value($H, Date, Time) ++
+    ":" ++ tag_to_value($i, Date, Time) ++
+    ":" ++ tag_to_value($s, Date, Time);
+
 %
 % Time, in 12-hour hours and minutes, with minutes
 % left off if they're zero.

+ 8 - 8
src/tests/erlydtl_dateformat_tests.erl

@@ -8,8 +8,8 @@ run_tests() ->
       {
          "date 1",
          {1979, 7, 8}, % just a date
-         [{"a", "a.m."}, {"A", "AM"}, {"d", "08"},
-          {"D", "Sun"}, {"f", "12"}, {"F", "July"},
+         [{"a", "a.m."}, {"A", "AM"}, {"c", "1979-07-08T00:00:00"},
+          {"d", "08"}, {"D", "Sun"}, {"f", "12"}, {"F", "July"},
           {"g", "12"}, {"G", "0"},
           {"j", "8"}, {"l", "Sunday"}, {"L", "False"},
           {"m", "07"}, {"M", "Jul"}, {"b", "jul"},
@@ -32,8 +32,8 @@ run_tests() ->
       {
          "datetime 1",
          {{1979, 7, 8}, {22, 7, 12}}, % date/time tuple
-         [{"a", "p.m."}, {"A", "PM"}, {"d", "08"},
-          {"D", "Sun"}, {"f", "10:07"}, {"F", "July"},
+         [{"a", "p.m."}, {"A", "PM"}, {"c", "1979-07-08T22:07:12"},
+          {"d", "08"}, {"D", "Sun"}, {"f", "10:07"}, {"F", "July"},
           {"g", "10"}, {"G", "22"},
           {"j", "8"}, {"l", "Sunday"}, {"L", "False"},
           {"m", "07"}, {"M", "Jul"}, {"b", "jul"},
@@ -55,8 +55,8 @@ run_tests() ->
       {
          "datetime 2",
          {{2008, 12, 25}, {7, 0, 9}}, % date/time tuple
-         [{"a", "a.m."}, {"A", "AM"}, {"d", "25"},
-          {"D", "Thu"}, {"f", "7"}, {"F", "December"},
+         [{"a", "a.m."}, {"A", "AM"}, {"c", "2008-12-25T07:00:09"},
+          {"d", "25"}, {"D", "Thu"}, {"f", "7"}, {"F", "December"},
           {"g", "7"}, {"G", "7"},
           {"j", "25"}, {"l", "Thursday"}, {"L", "True"},
           {"m", "12"}, {"M", "Dec"}, {"b", "dec"},
@@ -78,8 +78,8 @@ run_tests() ->
       {
          "datetime 3",
          {{2004, 2, 29}, {12, 0, 59}}, % date/time tuple
-         [{"a", "p.m."}, {"A", "PM"}, {"d", "29"},
-          {"D", "Sun"}, {"f", "12"}, {"F", "February"},
+         [{"a", "p.m."}, {"A", "PM"}, {"c", "2004-02-29T12:00:59"},
+          {"d", "29"}, {"D", "Sun"}, {"f", "12"}, {"F", "February"},
           {"g", "12"}, {"G", "12"},
           {"j", "29"}, {"l", "Sunday"}, {"L", "True"},
           {"m", "02"}, {"M", "Feb"}, {"b", "feb"},