X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Foutput%2FDateSelector.java;h=22a0f620854eafb45a2f1826f62b4a8a572f1d2e;hb=0a3573572ed9f1838d6c937b209f85111d2c4f5c;hp=f98ec8fa6993e9e349848c8f40e02f13a827adb6;hpb=cfccf094c856476a7618edfe4dc8ff1c2e198b1a;p=gigi.git diff --git a/src/org/cacert/gigi/output/DateSelector.java b/src/org/cacert/gigi/output/DateSelector.java index f98ec8fa..22a0f620 100644 --- a/src/org/cacert/gigi/output/DateSelector.java +++ b/src/org/cacert/gigi/output/DateSelector.java @@ -4,7 +4,6 @@ import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; -import java.util.Date; import java.util.GregorianCalendar; import java.util.Map; import java.util.TimeZone; @@ -13,23 +12,26 @@ import javax.servlet.http.HttpServletRequest; import org.cacert.gigi.GigiApiException; import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.template.Outputable; +import org.cacert.gigi.util.DayDate; +import org.cacert.gigi.util.HTMLEncoder; public class DateSelector implements Outputable { private String[] names; - public DateSelector(String day, String month, String year, Date date) { + public DateSelector(String day, String month, String year, DayDate date) { this(day, month, year); Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTF")); - cal.setTime(date); + cal.setTimeInMillis(date.getTime()); this.day = cal.get(Calendar.DAY_OF_MONTH); - this.month = cal.get(Calendar.MONTH); + this.month = cal.get(Calendar.MONTH) + 1; this.year = cal.get(Calendar.YEAR); } public DateSelector(String day, String month, String year) { this.names = new String[] { - day, month, year + HTMLEncoder.encodeHTML(day), HTMLEncoder.encodeHTML(month), HTMLEncoder.encodeHTML(year) }; } @@ -39,6 +41,8 @@ public class DateSelector implements Outputable { private int year; + private static ThreadLocal fmt = new ThreadLocal<>(); + @Override public void output(PrintWriter out, Language l, Map vars) { out.print(""); @@ -122,10 +126,22 @@ public class DateSelector implements Outputable { return "DateSelector [names=" + Arrays.toString(names) + ", day=" + day + ", month=" + month + ", year=" + year + "]"; } - public java.sql.Date getDate() { + public DayDate getDate() { Calendar gc = GregorianCalendar.getInstance(); - gc.set(year, month - 1, day); - return new java.sql.Date(gc.getTime().getTime()); + gc.set(year, month - 1, day, 0, 0, 0); + gc.set(Calendar.MILLISECOND, 0); + return new DayDate(gc.getTime().getTime()); + } + + public static SimpleDateFormat getDateFormat() { + SimpleDateFormat local = fmt.get(); + if (local == null) { + local = new SimpleDateFormat("yyyy-MM-dd"); + local.setLenient(false); + local.setTimeZone(TimeZone.getTimeZone("UTC")); + fmt.set(local); + } + return local; } }