diff options
Diffstat (limited to 'lib/http_date.ml')
-rw-r--r-- | lib/http_date.ml | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/http_date.ml b/lib/http_date.ml new file mode 100644 index 0000000..38bda02 --- /dev/null +++ b/lib/http_date.ml @@ -0,0 +1,37 @@ +(* Taken from https://github.com/gopiandcode/ocamlot *) +let parse_date = Parser.parse_date +let parse_date_exn = Parser.parse_date_exn + +let to_utc_string t = + let www = + Ptime.weekday t |> function + | `Sat -> "Sat" + | `Fri -> "Fri" + | `Mon -> "Mon" + | `Wed -> "Wed" + | `Sun -> "Sun" + | `Tue -> "Tue" + | `Thu -> "Thu" + in + let (yyyy, mmm, dd), ((hh, mm, ss), _) = Ptime.to_date_time t in + let mmm = + match mmm with + | 1 -> "Jan" + | 2 -> "Feb" + | 3 -> "Mar" + | 4 -> "Apr" + | 5 -> "May" + | 6 -> "Jun" + | 7 -> "Jul" + | 8 -> "Aug" + | 9 -> "Sep" + | 10 -> "Oct" + | 11 -> "Nov" + | 12 -> "Dec" + | _ -> assert false + in + Printf.sprintf "%s, %02d %s %04d %02d:%02d:%02d GMT" www dd mmm yyyy hh mm ss + +let%test "rev" = + List.equal Int.equal (List.rev [ 3; 2; 1 ]) [ 3; 2; 1 ] + |