All Downloads are FREE. Search and download functionalities are using the official Maven repository.

se.wfh.libs.common.web.ejb.DateEJB Maven / Gradle / Ivy

package se.wfh.libs.common.web.ejb;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;

import javax.ejb.EJB;
import javax.ejb.Singleton;

import se.wfh.libs.common.web.ejb.interfaces.DateBean;

@EJB(name = "DateEJB", beanInterface = DateBean.class)
@Singleton
public final class DateEJB implements DateBean {
	private static final long serialVersionUID = 1L;

	private static final DateFormat FMT_COMPLETE = DateFormat
			.getDateTimeInstance();

	private static final DateFormat FMT_DATE = DateFormat.getDateInstance();

	private static final DateFormat FMD_TIME = DateFormat.getTimeInstance();

	private static final SimpleDateFormat FMT_EXPORT = new SimpleDateFormat(
			"yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);

	@Override
	public Calendar cleanSeconds(final Calendar cal) {
		if (cal != null) {
			cal.set(Calendar.SECOND, 0);
			cal.set(Calendar.MILLISECOND, 0);
		}

		return cal;
	}

	@Override
	public Calendar fromDisplayString(final String str) throws ParseException {
		final GregorianCalendar cal = new GregorianCalendar();
		synchronized (FMT_COMPLETE) {
			cal.setTime(FMT_COMPLETE.parse(str));
		}

		return cal;
	}

	@Override
	public Calendar fromDisplayStringDate(final String str) throws ParseException {
		final GregorianCalendar cal = new GregorianCalendar();
		synchronized (FMT_DATE) {
			cal.setTime(FMT_DATE.parse(str));
		}

		return cal;
	}

	@Override
	public Calendar fromDisplayStringTime(final String str) throws ParseException {
		final GregorianCalendar cal = new GregorianCalendar();
		synchronized (FMD_TIME) {
			cal.setTime(FMD_TIME.parse(str));
		}

		return cal;
	}

	@Override
	public Calendar fromExportString(final String str) throws ParseException {
		final GregorianCalendar cal = new GregorianCalendar();
		synchronized (FMT_EXPORT) {
			cal.setTime(FMT_EXPORT.parse(str));
		}

		return cal;
	}

	@Override
	public Calendar getWithoutTime(final Calendar cal) {
		if (cal != null) {
			cal.set(Calendar.HOUR_OF_DAY, 0);
			cal.set(Calendar.MINUTE, 0);
			cal.set(Calendar.SECOND, 0);
			cal.set(Calendar.MILLISECOND, 0);
		}

		return cal;
	}

	@Override
	public Date getWithoutTime(final Date date) {
		Date result = null;

		if (date != null) {
			Calendar cal = new GregorianCalendar();
			cal.setTime(date);

			result = getWithoutTime(cal).getTime();
		}

		return result;
	}

	@Override
	public String toDisplayString(final Date date) {
		synchronized (FMT_COMPLETE) {
			return FMT_COMPLETE.format(date);
		}
	}

	@Override
	public String toDisplayStringDate(final Date date) {
		synchronized (FMT_DATE) {
			return FMT_DATE.format(date);
		}
	}

	@Override
	public String toDisplayStringTime(final Date date) {
		synchronized (FMD_TIME) {
			return FMD_TIME.format(date);
		}
	}

	@Override
	public String toExportString(final Date date) {
		synchronized (FMT_EXPORT) {
			return FMT_EXPORT.format(date);
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy