From af3b18f518d8e6899e0ec7bbf136934df9402448 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Mon, 4 Apr 2016 18:56:19 -0400 Subject: [PATCH] Fix incorrect date format for some languages --- .../org/isoron/uhabits/helpers/DateHelper.java | 16 ++++++++++++++++ .../isoron/uhabits/views/HabitFrequencyView.java | 9 ++------- .../isoron/uhabits/views/HabitHistoryView.java | 5 ++--- .../org/isoron/uhabits/views/HabitScoreView.java | 9 ++++----- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/helpers/DateHelper.java b/app/src/main/java/org/isoron/uhabits/helpers/DateHelper.java index 371e2ae47..b2c300453 100644 --- a/app/src/main/java/org/isoron/uhabits/helpers/DateHelper.java +++ b/app/src/main/java/org/isoron/uhabits/helpers/DateHelper.java @@ -97,6 +97,22 @@ public class DateHelper return df.format(date); } + public static SimpleDateFormat getDateFormat(String skeleton) + { + String pattern; + Locale locale = Locale.getDefault(); + + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) + pattern = DateFormat.getBestDateTimePattern(locale, skeleton); + else + pattern = skeleton; + + SimpleDateFormat format = new SimpleDateFormat(pattern, locale); + format.setTimeZone(TimeZone.getTimeZone("UTC")); + + return format; + } + public static SimpleDateFormat getCSVDateFormat() { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.US); diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java b/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java index ceee57489..c3d47d9f0 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitFrequencyView.java @@ -35,9 +35,7 @@ import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; -import java.util.Locale; import java.util.Random; -import java.util.TimeZone; public class HabitFrequencyView extends ScrollableDataView implements HabitDataView { @@ -93,11 +91,8 @@ public class HabitFrequencyView extends ScrollableDataView implements HabitDataV wdays = DateHelper.getShortDayNames(); - dfMonth = new SimpleDateFormat("MMM", Locale.getDefault()); - dfYear = new SimpleDateFormat("yyyy", Locale.getDefault()); - - dfMonth.setTimeZone(TimeZone.getTimeZone("GMT")); - dfYear.setTimeZone(TimeZone.getTimeZone("GMT")); + dfMonth = DateHelper.getDateFormat("MMM"); + dfYear = DateHelper.getDateFormat("yyyy"); rect = new RectF(); prevRect = new RectF(); diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java b/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java index 67297101e..0958bf275 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitHistoryView.java @@ -40,7 +40,6 @@ import org.isoron.uhabits.tasks.ToggleRepetitionTask; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; -import java.util.Locale; import java.util.Random; public class HabitHistoryView extends ScrollableDataView implements HabitDataView, @@ -100,8 +99,8 @@ public class HabitHistoryView extends ScrollableDataView implements HabitDataVie checkmarks = new int[0]; primaryColor = ColorHelper.palette[7]; wdays = DateHelper.getShortDayNames(); - dfMonth = new SimpleDateFormat("MMM", Locale.getDefault()); - dfYear = new SimpleDateFormat("yyyy", Locale.getDefault()); + dfMonth = DateHelper.getDateFormat("MMM"); + dfYear = DateHelper.getDateFormat("yyyy"); baseLocation = new RectF(); } diff --git a/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java b/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java index d92b4cd03..2ce0371b1 100644 --- a/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java +++ b/app/src/main/java/org/isoron/uhabits/views/HabitScoreView.java @@ -29,16 +29,15 @@ import android.graphics.RectF; import android.support.annotation.Nullable; import android.util.AttributeSet; +import org.isoron.uhabits.R; import org.isoron.uhabits.helpers.ColorHelper; import org.isoron.uhabits.helpers.DateHelper; -import org.isoron.uhabits.R; import org.isoron.uhabits.models.Habit; import org.isoron.uhabits.models.Score; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; -import java.util.Locale; import java.util.Random; public class HabitScoreView extends ScrollableDataView implements HabitDataView @@ -100,9 +99,9 @@ public class HabitScoreView extends ScrollableDataView implements HabitDataView createPaints(); createColors(); - dfYear = new SimpleDateFormat("yyyy", Locale.getDefault()); - dfMonth = new SimpleDateFormat("MMM", Locale.getDefault()); - dfDay = new SimpleDateFormat("d", Locale.getDefault()); + dfYear = DateHelper.getDateFormat("yyyy"); + dfMonth = DateHelper.getDateFormat("MMM"); + dfDay = DateHelper.getDateFormat("d"); rect = new RectF(); prevRect = new RectF();