package org.ariadne_eu.oai.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
public class TargetUtils{
protected static Calendar FAR_AWAY = GregorianCalendar.getInstance();
static {
FAR_AWAY.set(9000, 01, 01);
}
public static String convertToLocaleIbmDB2DateTime(String date) throws ParseException {
String patternIn = "yyyy-MM-dd'T'HH:mm:ss'Z'";
String patternOut = "yyyy-MM-dd' 'HH:mm:ss";
SimpleDateFormat sdfIn = new SimpleDateFormat(patternIn);
sdfIn.setTimeZone(TimeZone.getTimeZone("UTC"));
Date parsedDate = sdfIn.parse(date);
SimpleDateFormat sdfOut = new SimpleDateFormat(patternOut);
sdfOut.setTimeZone(TimeZone.getDefault());
return sdfOut.format(parsedDate);
}
public static String convertLocaleIbmDB2DateTimeToUTC(String date) throws ParseException {
String patternOut = "yyyy-MM-dd'T'HH:mm:ss'Z'";
String patternIn = "yyyy-MM-dd' 'HH:mm:ss";
SimpleDateFormat sdfIn = new SimpleDateFormat(patternIn);
sdfIn.setTimeZone(TimeZone.getDefault());
Date parsedDate = sdfIn.parse(date);
SimpleDateFormat sdfOut = new SimpleDateFormat(patternOut);
sdfOut.setTimeZone(TimeZone.getTimeZone("UTC"));
return sdfOut.format(parsedDate);
}
public static String convertUNTILToLocaleIbmDB2DateTime(String date) throws ParseException {
String patternIn = "yyyy-MM-dd'T'HH:mm:ss'Z'";
String patternOut = "yyyy-MM-dd' 'HH:mm:ss";
SimpleDateFormat sdfIn = new SimpleDateFormat(patternIn);
sdfIn.setTimeZone(TimeZone.getTimeZone("UTC"));
Date parsedDate = sdfIn.parse(date);
Calendar parsedCalendar = GregorianCalendar.getInstance();
parsedCalendar.setTime(parsedDate);
SimpleDateFormat sdfOut = new SimpleDateFormat(patternOut);
if(!parsedCalendar.after(FAR_AWAY)) {
parsedCalendar.add(Calendar.SECOND, 1);
sdfOut.setTimeZone(TimeZone.getDefault());
return sdfOut.format(parsedCalendar.getTime());
}
else {
sdfOut.setTimeZone(TimeZone.getTimeZone("UTC"));
return sdfOut.format(parsedCalendar.getTime());
}
}
}