From 90b65dbc9fc194de95e3cbb0052ce9d5739800bf Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@nibio.no> Date: Wed, 13 Jun 2018 10:11:17 +0200 Subject: [PATCH] Adding TimeZone awareness --- src/main/java/no/nibio/vips/util/XDate.java | 22 ++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/no/nibio/vips/util/XDate.java b/src/main/java/no/nibio/vips/util/XDate.java index b4b816a..5c80ded 100644 --- a/src/main/java/no/nibio/vips/util/XDate.java +++ b/src/main/java/no/nibio/vips/util/XDate.java @@ -32,16 +32,24 @@ import java.util.TimeZone; public class XDate extends java.util.Date{ private SimpleDateFormat ISOUTCFormat; + private TimeZone timeZone; public XDate(){ super(); + this.timeZone = TimeZone.getDefault(); ISOUTCFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX"); ISOUTCFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + } public XDate(Date date) { - this(); + this(date, TimeZone.getDefault()); + } + public XDate(Date date, TimeZone timeZone) + { + super(); this.setTime(date.getTime()); + this.timeZone = timeZone; } /** @@ -113,7 +121,7 @@ public class XDate extends java.util.Date{ * @return Yesterday at same time */ public Date getYesterday(){ - Calendar cal = Calendar.getInstance(); + Calendar cal = Calendar.getInstance(this.timeZone); cal.setTime(this); cal.add(Calendar.DATE, -1); return cal.getTime(); @@ -124,7 +132,7 @@ public class XDate extends java.util.Date{ * @return Tomorrow at same time */ public Date getTomorrow(){ - Calendar cal = Calendar.getInstance(); + Calendar cal = Calendar.getInstance(this.timeZone); cal.setTime(this); cal.add(Calendar.DATE, +1); return cal.getTime(); @@ -135,7 +143,7 @@ public class XDate extends java.util.Date{ * @param hours */ public void addHours(Integer hours){ - Calendar cal = Calendar.getInstance(); + Calendar cal = Calendar.getInstance(this.timeZone); cal.setTime(this); cal.add(Calendar.HOUR_OF_DAY, hours); this.setTime(cal.getTime().getTime()); @@ -146,7 +154,7 @@ public class XDate extends java.util.Date{ * @param days */ public void addDays(Integer days){ - Calendar cal = Calendar.getInstance(); + Calendar cal = Calendar.getInstance(this.timeZone); cal.setTime(this); cal.add(Calendar.DATE, days); this.setTime(cal.getTime().getTime()); @@ -157,7 +165,7 @@ public class XDate extends java.util.Date{ * @param weeks */ public void addWeeks(Integer weeks){ - Calendar cal = Calendar.getInstance(); + Calendar cal = Calendar.getInstance(this.timeZone); cal.setTime(this); cal.add(Calendar.WEEK_OF_YEAR, weeks); this.setTime(cal.getTime().getTime()); @@ -168,7 +176,7 @@ public class XDate extends java.util.Date{ * @param years */ public void addYears(Integer years){ - Calendar cal = Calendar.getInstance(); + Calendar cal = Calendar.getInstance(this.timeZone); cal.setTime(this); cal.add(Calendar.YEAR, years); this.setTime(cal.getTime().getTime()); -- GitLab