blob: d856a20fbea3ae03605c37dba2b987151b9792b4 [file] [log] [blame]
package edu.uci.ics.asterix.dataflow.data.nontagged.printers;
import java.io.PrintStream;
import edu.uci.ics.asterix.dataflow.data.nontagged.serde.AInt64SerializerDeserializer;
import edu.uci.ics.asterix.om.base.temporal.GregorianCalendarSystem;
import edu.uci.ics.hyracks.algebricks.common.exceptions.AlgebricksException;
import edu.uci.ics.hyracks.algebricks.data.IPrinter;
public class ADateTimePrinter implements IPrinter {
private static final long serialVersionUID = 1L;
public static final ADateTimePrinter INSTANCE = new ADateTimePrinter();
private static final GregorianCalendarSystem gCalInstance = GregorianCalendarSystem.getInstance();
@Override
public void init() {
}
@Override
public void print(byte[] b, int s, int l, PrintStream ps) throws AlgebricksException {
long chrononTime = AInt64SerializerDeserializer.getLong(b, s + 1);
int year = gCalInstance.getYear(chrononTime);
int month = gCalInstance.getMonthOfYear(chrononTime, year);
ps.print("datetime(\"");
ps.append(String.format(year < 0 ? "%05d" : "%04d", year)).append("-").append(String.format("%02d", month))
.append("-").append(String.format("%02d", gCalInstance.getDayOfMonthYear(chrononTime, year, month)))
.append("T").append(String.format("%02d", gCalInstance.getHourOfDay(chrononTime))).append(":")
.append(String.format("%02d", gCalInstance.getMinOfHour(chrononTime))).append(":")
.append(String.format("%02d", gCalInstance.getSecOfMin(chrononTime))).append(".")
.append(String.format("%03d", gCalInstance.getMillisOfSec(chrononTime))).append("Z");
ps.print("\")");
}
}