package com.zulip.android.util; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; /** * All methods related to date */ public class DateMethods { /** * Check's whether two date are of same day or not * * @param date1 compare with date2 * @param date2 compare with date1 * @return true if date1 and date2 are of same day */ public static boolean isSameDay(Date date1, Date date2) { Calendar calendar = Calendar.getInstance(); Calendar calendar2 = Calendar.getInstance(); calendar.setTime(date1); calendar2.setTime(date2); return calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR) && calendar.get(Calendar.DAY_OF_YEAR) == calendar2.get(Calendar.DAY_OF_YEAR); } /** * Check's whether two date are of same year or not * * @param date1 compare with date2 * @param date2 compare with date1 * @return true if date1 and date2 are of same year */ public static boolean isSameYear(Date date1, Date date2) { Calendar calendar = Calendar.getInstance(); Calendar calendar2 = Calendar.getInstance(); calendar.setTime(date1); calendar2.setTime(date2); return calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR); } public static String getStringDate(Date date) { if (date == null) return ""; //check for today if (isSameDay(date, new Date())) { return "Today"; } //check for yesterday Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -1); if (isSameDay(date, calendar.getTime())) { return "Yesterday"; } SimpleDateFormat formatter; if (isSameYear(date, new Date())) { //return only month and date eg:- MAR 09 formatter = new SimpleDateFormat("MMM dd", Locale.getDefault()); } else { //return month, date and year eg:- MAR 09, 2017 formatter = new SimpleDateFormat("MMM dd, yyyy", Locale.getDefault()); } return formatter.format(date); } }