package com.abewy.android.apps.klyph.messenger.util;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang3.time.FastDateFormat;
import android.util.Log;
public class DateUtil
{
private static FastDateFormat getDateFormat()
{
FastDateFormat dateFormat = FastDateFormat.getDateInstance(FastDateFormat.FULL);
String pattern = dateFormat.getPattern();
pattern = pattern.replace("y", "");
pattern = pattern.replace("E", "");
pattern = pattern.replace(",", "");
pattern = pattern.replace(" ", " ");
pattern = pattern.trim();
return FastDateFormat.getInstance(pattern);
}
private static String getFormattedDate(Date date)
{
return getDateFormat().format(date);
}
private static String getFormattedFullDate(Date date)
{
FastDateFormat dateFormat = FastDateFormat.getDateInstance(FastDateFormat.FULL);
String pattern = dateFormat.getPattern();
pattern = pattern.replace("E", "");
pattern = pattern.replace(",", "");
pattern = pattern.replace(" ", " ");
pattern = pattern.trim();
return FastDateFormat.getInstance(pattern).format(date);
}
private static String getFormattedTime(Date date)
{
return FastDateFormat.getTimeInstance(FastDateFormat.SHORT).format(date);
}
public static String getFormattedDateTime(String unixDate)
{
Date date;
try
{
long when = Long.parseLong(unixDate);
date = new Date(when * 1000);
}
catch (NumberFormatException e)
{
e.printStackTrace();
return "";
}
return new StringBuilder(getFormattedDate(date)).append(" ").append(getFormattedTime(date)).toString();
}
public static String getFormattedDateTimeWithYear(String unixDate)
{
Date date;
try
{
long when = Long.parseLong(unixDate);
date = new Date(when * 1000);
}
catch (NumberFormatException e)
{
e.printStackTrace();
return "";
}
return new StringBuilder(getFormattedFullDate(date)).append(" ").append(getFormattedTime(date)).toString();
}
public static String getShortDate(String unixDate)
{
Date date = new Date(Long.parseLong(unixDate)*1000);
Date now = new Date();
String pattern = "";
// If date < 7 days
if (now.getTime() - date.getTime() < 7 * 24 * 60 * 60 * 1000)
{
pattern = "E";
}
else
{
FastDateFormat dateFormat = FastDateFormat.getDateInstance(FastDateFormat.MEDIUM);
pattern = dateFormat.getPattern();
pattern = pattern.replace("y", "");
pattern = pattern.replace("年", "");//y in chinese
pattern = pattern.replace(",", "");
pattern = pattern.replace(" ", " ");
pattern = pattern.trim();
if (pattern.indexOf("/") == 0 || pattern.indexOf("-") == 0 || pattern.indexOf(".") == 0)
{
pattern = pattern.substring(1);
}
}
FastDateFormat dateFormat = FastDateFormat.getInstance(pattern);
return dateFormat.format(date);
}
public static String getShortDateTime(String unixDate)
{
Date date = new Date(Long.parseLong(unixDate)*1000);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c2.setTime(date);
FastDateFormat dateFormat = FastDateFormat.getDateTimeInstance(FastDateFormat.MEDIUM, FastDateFormat.SHORT);
String pattern = dateFormat.getPattern();
// If not same year
if (c1.get(Calendar.YEAR) == c2.get(Calendar.YEAR))
{
pattern = pattern.replace("y", "");
if (pattern.indexOf("/") == 0 || pattern.indexOf("-") == 0 || pattern.indexOf(".") == 0 || pattern.indexOf("年") == 0)
{
pattern = pattern.substring(1);
}
/* pattern = pattern.replace("EEEE", "EEE");
pattern = pattern.replace("MMMM", "");
pattern = pattern.replace("d", "");
}
else
{
pattern = pattern.replace("MMMM", "MMM");
pattern = pattern.replace("EEEE", "");*/
}
pattern = pattern.replace(" ", " ");
pattern = pattern.trim();
dateFormat = FastDateFormat.getInstance(pattern);
return dateFormat.format(date);
}
}