TimeStamper.java 1.74 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.cq.dam.s7imaging.impl.ps.access_log;

import java.sql.Date;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class TimeStamper {
    private static final String TIME_STUB = "yyyy-MM-dd HH:mm:ss.000";
    private static final String PATTERN = "yyyy-MM-dd HH:mm:ss.000 Z";
    private final Format dateFormat;
    private long currentTimeSec;
    private String currentTimeStamp;

    public TimeStamper() {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.000 Z");
        Calendar calendar = Calendar.getInstance();
        format.setCalendar(calendar);
        this.dateFormat = format;
        this.getCourseTimeStamp(System.currentTimeMillis());
    }

    public synchronized String getTimeStamp(long time) {
        StringBuilder buffer = new StringBuilder(23);
        this.getTimeStamp(buffer, time);
        return buffer.toString();
    }

    public synchronized void getTimeStamp(StringBuilder buffer, long time) {
        String courceTimeStamp = this.getCourseTimeStamp(time);
        String millis = Long.toString(time % 1000);
        buffer.append(courceTimeStamp.substring(0, "yyyy-MM-dd HH:mm:ss.000".length() - millis.length()));
        buffer.append(millis);
        buffer.append(courceTimeStamp.substring("yyyy-MM-dd HH:mm:ss.000".length()));
    }

    private String getCourseTimeStamp(long time) {
        long timeSec = time / 1000 * 1000;
        if (timeSec != this.currentTimeSec) {
            Date date = new Date(time);
            date.setTime(time);
            this.currentTimeStamp = this.dateFormat.format(date);
            this.currentTimeSec = timeSec;
        }
        return this.currentTimeStamp;
    }
}