From 6e0df466f76c201c920a993d1239f3174797a914 Mon Sep 17 00:00:00 2001 From: Grahame Grieve Date: Thu, 19 Dec 2019 22:39:46 +1100 Subject: [PATCH] fix SimpleDateFormat to not be locale dependent --- .../main/java/org/hl7/fhir/r4/utils/NarrativeGenerator.java | 2 +- .../main/java/org/hl7/fhir/r5/utils/client/ClientUtils.java | 3 ++- .../java/org/hl7/fhir/r5/utils/client/ResourceAddress.java | 3 ++- .../java/org/hl7/fhir/utilities/cache/PackageCacheManager.java | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/utils/NarrativeGenerator.java b/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/utils/NarrativeGenerator.java index 3181de2ed..9ff6e48a8 100644 --- a/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/utils/NarrativeGenerator.java +++ b/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/utils/NarrativeGenerator.java @@ -2925,7 +2925,7 @@ public class NarrativeGenerator implements INarrativeGenerator { } catch (ParseException e) { return ds; } - return new SimpleDateFormat("dd-MMM yyyy").format(date); + return new SimpleDateFormat("dd-MMM yyyy", new Locale("en", "US")).format(date); } private String describeModule(String module) { diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/client/ClientUtils.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/client/ClientUtils.java index f2ec1a6df..5d43e7b16 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/client/ClientUtils.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/client/ClientUtils.java @@ -68,6 +68,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.Locale; import java.util.Map; import org.apache.commons.codec.binary.Base64; @@ -498,7 +499,7 @@ public class ClientUtils { String dateTime = null; try { dateTime = serverConnection.getHeaderField("Last-Modified"); - SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz"); + SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", new Locale("en", "US")); Date lastModifiedTimestamp = format.parse(dateTime); Calendar calendar=Calendar.getInstance(); calendar.setTime(lastModifiedTimestamp); diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/client/ResourceAddress.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/client/ResourceAddress.java index 8522c28b8..9e65441ac 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/client/ResourceAddress.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/client/ResourceAddress.java @@ -58,6 +58,7 @@ import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.TimeZone; @@ -415,7 +416,7 @@ public class ResourceAddress { } public static String getCalendarDateInIsoTimeFormat(Calendar calendar) { - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss");//TODO Move out + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss", new Locale("en", "US"));//TODO Move out format.setTimeZone(TimeZone.getTimeZone("GMT")); return format.format(calendar.getTime()); } diff --git a/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/cache/PackageCacheManager.java b/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/cache/PackageCacheManager.java index fd9d58255..170d3f770 100644 --- a/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/cache/PackageCacheManager.java +++ b/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/cache/PackageCacheManager.java @@ -40,6 +40,7 @@ import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; @@ -442,7 +443,7 @@ public class PackageCacheManager { } private Date readDate(String s) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM, yyyy HH:mm:ss Z"); + SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM, yyyy HH:mm:ss Z", new Locale("en", "US")); return sdf.parse(s); }