package com.android.yzd.memo.utils; import android.content.Context; import com.android.yzd.memo.R; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by lgp on 2015/5/25. */ public class TimeUtils { public static final long HOUR_Millis = 60 * 60 * 1000; public static final long HALF_HOUR_Millis = HOUR_Millis / 2; public static final long DAY_Millis = 24 * HOUR_Millis; public static final long MONTH_Millis = 30 * DAY_Millis; public static final long YEAR_Millis = 365 * DAY_Millis; public static final SimpleDateFormat DEFAULT_DATE_FORMAT = new SimpleDateFormat("yyyy.MM.dd HH : mm"); public static final SimpleDateFormat DATE_FORMAT_DATE_1 = new SimpleDateFormat(" HH : mm "); private TimeUtils() { throw new AssertionError(); } /** * long time to string * * @param timeInMillis * @param dateFormat * @return */ public static String getTime(long timeInMillis, SimpleDateFormat dateFormat) { return dateFormat.format(new Date(timeInMillis)); } /** * long time to string, format is {@link #DEFAULT_DATE_FORMAT} * * @param timeInMillis * @return */ public static String getTime(long timeInMillis) { return getTime(timeInMillis, DEFAULT_DATE_FORMAT); } @SuppressWarnings("Deprecated") public static String getConciseTime(long timeInMillis, long nowInMillis, Context context) { if (context == null) return ""; long diff = nowInMillis - timeInMillis; if (diff >= YEAR_Millis){ int year = (int)(diff / YEAR_Millis); return context.getString(R.string.before_year, year); } if (diff >= MONTH_Millis){ int month = (int)(diff / MONTH_Millis); return context.getString(R.string.before_month, month); } if (diff >= DAY_Millis){ int day = (int)(diff / DAY_Millis); return context.getString(R.string.before_day, day); } if (diff >= HOUR_Millis){ int hour = (int)(diff / HOUR_Millis); return context.getString(R.string.before_hour, hour); } if (diff >= HALF_HOUR_Millis){ return context.getString(R.string.before_half_hour); } return context.getString(R.string.just_now); } public static String getConciseTime(long timeInMillis, Context context) { return getConciseTime(timeInMillis, getCurrentTimeInLong(), context); } /** * get current time in milliseconds * * @return */ public static long getCurrentTimeInLong() { return System.currentTimeMillis(); } /** * get current time in milliseconds, format is {@link #DEFAULT_DATE_FORMAT} * * @return */ public static String getCurrentTimeInString() { return getTime(getCurrentTimeInLong()); } /** * get current time in milliseconds * * @return */ public static String getCurrentTimeInString(SimpleDateFormat dateFormat) { return getTime(getCurrentTimeInLong(), dateFormat); } }