Skip to content

Commit 9550c95

Browse files
authored
Merge pull request #320 from twilio/fix-non-us-locale-date-time
Fix exception parsing rfc2822 dates for some locales, always use US locale
2 parents a6aa6d3 + 7ee7cb5 commit 9550c95

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

src/main/java/com/twilio/converter/DateConverter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.twilio.converter;
22

3+
import java.util.Locale;
34
import org.joda.time.DateTime;
45
import org.joda.time.DateTimeZone;
56
import org.joda.time.LocalDate;
@@ -16,7 +17,7 @@ public class DateConverter {
1617
DateTimeFormat.forPattern(DATE_PATTERN).withZone(DateTimeZone.UTC);
1718

1819
private static final DateTimeFormatter RFC2822_DATE_TIME_FORMATTER =
19-
DateTimeFormat.forPattern(RFC2822_DATE_TIME).withZone(DateTimeZone.UTC);
20+
DateTimeFormat.forPattern(RFC2822_DATE_TIME).withZone(DateTimeZone.UTC).withLocale(new Locale("en_US"));
2021

2122
private static final DateTimeFormatter ISO8601_DATE_TIME_FORMATTER =
2223
DateTimeFormat.forPattern(ISO8601_DATE_TIME).withZone(DateTimeZone.UTC);

src/test/java/com/twilio/converter/DateConverterTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import org.junit.Assert;
66
import org.junit.Test;
77

8+
import java.util.Locale;
9+
810
/**
911
* Test Class for {@link DateConverter}.
1012
*/
@@ -67,4 +69,18 @@ public void testLocalDateToString() {
6769
String date = DateConverter.dateStringFromLocalDate(new LocalDate(2016, 9, 21));
6870
Assert.assertEquals("2016-09-21", date);
6971
}
72+
73+
@Test
74+
public void testDifferentLocaleRFC2822() {
75+
Locale.setDefault(new Locale("fr", "CA"));
76+
DateTime dateTime = DateConverter.rfc2822DateTimeFromString("Tue, 29 Mar 2016 13:00:05 +0000");
77+
Assert.assertNotNull(dateTime);
78+
}
79+
80+
@Test
81+
public void testDifferentLocaleISO8601() {
82+
Locale.setDefault(new Locale("fr", "CA"));
83+
DateTime dateTime = DateConverter.iso8601DateTimeFromString("2016-01-15T21:49:24Z");
84+
Assert.assertNotNull(dateTime);
85+
}
7086
}

0 commit comments

Comments
 (0)