From 442162d7e5da371e0404afb6761695ecdc09411f Mon Sep 17 00:00:00 2001 From: gered Date: Tue, 2 Sep 2014 15:17:50 -0400 Subject: [PATCH] add helper functions for turning date/time strings to Date objects --- src/clj_hl7_fhir/util.clj | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/clj_hl7_fhir/util.clj b/src/clj_hl7_fhir/util.clj index 059b2ee..54614e2 100644 --- a/src/clj_hl7_fhir/util.clj +++ b/src/clj_hl7_fhir/util.clj @@ -34,6 +34,29 @@ [^Date date] (format-date date iso8601-date)) +(defn parse-formatted-timestamp [^String timestamp ^String format] + (if-not (str/blank? timestamp) + (let [df (SimpleDateFormat. format)] + (.setTimeZone df tz) + (.parse df timestamp)))) + +(defn parse-timestamp + "parses an ISO8601 formatted date/time string with timezone information, returning an + equivalent Date object" + [^String timestamp] + (parse-formatted-timestamp timestamp iso8601-timestamp)) + +(defn parse-local-timestamp + "parses an ISO8601 formatted date/time string without timezone information (appropriate + for local timezone date/times only), returning an equivalent Date object" + [^String timestamp] + (parse-formatted-timestamp timestamp iso8601-local-timestamp)) + +(defn parse-date + "parses an ISO8601 formatted date string, returning an equivalent Date object" + [^String date] + (parse-formatted-timestamp date iso8601-date)) + (defn map->query-string [m] (->> m (reduce