Changeset 3 in code for trunk/lib/date.ml
- Timestamp:
- Apr 15, 2022, 1:17:01 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/date.ml
r2 r3 1 type t = { created: Ptime.t option; edited: Ptime.t option}1 type t = { created: string; edited: string } 2 2 let compare = compare 3 let rfc_string date = match date with Some t -> Ptime.to_rfc3339 t | None -> "" 4 let of_string (rfc : string) = match Ptime.of_rfc3339 rfc with Ok (t,_,_) -> Some t | Error _ -> None 5 let listing date = if Option.is_some date.edited then date.edited else date.created 6 let pretty_date = function 7 | Some t -> Ptime.to_date t |> fun (y, m, d) -> Printf.sprintf "%04d-%02d-%02d" y m d 8 | None -> "" 3 let rfc_string date = date 4 let of_string (rfc : string) = rfc 5 let listing date = if date.edited <> "" then date.edited else date.created 6 let pretty_date date = 7 try Scanf.sscanf date "%4s-%2s-%2s" (fun y m d -> Printf.sprintf "%s %s %s" y m d) 8 with Scanf.Scan_failure s as e -> Printf.fprintf stderr "%s for %s\n" s date; raise e 9 let now () = Unix.time () |> Unix.gmtime |> 10 (fun t -> Printf.sprintf "%4d-%02d-%02dT%02d:%02d:%02dZ" 11 (t.tm_year+1900) (t.tm_mon+1) t.tm_mday t.tm_hour t.tm_min t.tm_sec) 12 let to_secs date = 13 Scanf.sscanf date "%4d-%02d-%02dT%02d:%02d:%02d" 14 (fun y mo d h mi s -> (y-1970)*31557600 + mo*2629800 + d*86400 + h*3600 + mi*60 + s)
Note:
See TracChangeset
for help on using the changeset viewer.