package de.jeisfeld.augendiagnoselib.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import android.support.annotation.NonNull;
import de.jeisfeld.augendiagnoselib.Application;
/**
* Utility class for handling dates.
*/
public final class DateUtil {
/**
* Hide default constructor.
*/
private DateUtil() {
throw new UnsupportedOperationException();
}
/**
* Transfer a date String into a date object, using a given date format.
*
* @param date the date string
* @param format the date format
* @return the date object
* @throws ParseException thrown if the date string cannot be parsed.
*/
public static Date parse(final String date, @NonNull final String format) throws ParseException {
SimpleDateFormat dateFormat = new SimpleDateFormat(format, Locale.getDefault());
return dateFormat.parse(date);
}
/**
* Format a date object into a date String using a given date format.
*
* @param date the date object
* @param format the date format
* @return the formatted date
*/
public static String format(final Date date, @NonNull final String format) {
SimpleDateFormat dateFormat = new SimpleDateFormat(format, Locale.getDefault());
return dateFormat.format(date);
}
/**
* Format a date object into a date String using the Android system default date format.
*
* @param date the date object
* @return the formatted date
*/
public static String format(final Date date) {
DateFormat dateFormat = android.text.format.DateFormat.getMediumDateFormat(Application.getAppContext());
return dateFormat.format(date);
}
/**
* Get display format of the date.
*
* @param calendar the date as calendar object
* @return the date formatted for display
*/
public static String getDisplayDate(@NonNull final Calendar calendar) {
DateFormat dateFormat = android.text.format.DateFormat.getLongDateFormat(Application.getAppContext());
return dateFormat.format(calendar.getTime());
}
}