package com.peopleapp.en.util;import android.content.Context;import android.text.TextUtils;import android.text.format.DateFormat;import com.peopleapp.en.R;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;import java.util.TimeZone;public class TimeUtil {    private static final int seconds_of_1minute = 60;    private static final int seconds_of_1hour = 60 * 60;    private static final int seconds_of_2hour = 2 * 60 * 60;    private static final int seconds_of_3hour = 3 * 60 * 60;    private static final String YMDHMS_FORMAT = "yyyy-MM-dd HH:mm:ss";    private static final String search_DateFormat = "MM/dd/yyyy HH:mm:ss";    private static final String TIME_ZERO = "00:00";    private static final String TIME_MAX = "23:59:59";    public static Date stringConvertDate(String time) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.CHINA);        Date data = null;        try {            data = sdf.parse(time);        } catch (ParseException e) {            e.printStackTrace();        }        return data;    }    public static String timeAgo(Context context, long createdTime) {        return timeAgo(context, new Date(createdTime));    }    public static String timeAgo(Context context, Date createdTime) {        SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm", Locale.CHINA);        if (createdTime != null) {            long agoTimeInMin = (new Date(System.currentTimeMillis()).getTime() - createdTime.getTime()) / 1000 / 60;            if (agoTimeInMin <= 1) {                return context.getString(R.string.just_now);            } else if (agoTimeInMin <= 60) {                return agoTimeInMin + context.getString(R.string.mins_ago);            } else if (agoTimeInMin <= 60 * 24) {                return agoTimeInMin / 60 + context.getString(R.string.hours_ago);            } else if (agoTimeInMin <= 60 * 24 * 2) {                return agoTimeInMin / (60 * 24) + context.getString(R.string.days_ago);            } else {                return format.format(createdTime);            }        } else {            return format.format(new Date(0));        }    }    public static String getDateTimeAgo(Context context, long timeStamp) {        return timeAgo(context, new Date(timeStamp));    }    public static String getUSDateTimeFormat(long timeStamp) {        SimpleDateFormat usSdf = new SimpleDateFormat("HH:mm, MMMM dd, yyyy", Locale.US);        return usSdf.format(new Date(timeStamp));    }    public static String getCurrentTimeStamp() {        return String.valueOf(System.currentTimeMillis() / 1000);    }    /**     * local ---> UTC     *     * @return     */    public static String Local2UTC() {        SimpleDateFormat sdf = new SimpleDateFormat(YMDHMS_FORMAT);        sdf.setTimeZone(TimeZone.getTimeZone("UTC"));        String gmtTime = sdf.format(new Date());        return gmtTime;    }    /**     * UTC --->local     *     * @param utcTime UTC     * @return     */    public static String utc2Local(String utcTime) {        try {            if (TextUtils.isEmpty(utcTime)) {                return "";            }            SimpleDateFormat utcFormater = new SimpleDateFormat(YMDHMS_FORMAT);            utcFormater.setTimeZone(TimeZone.getTimeZone("UTC"));            Date gpsUTCDate = null;            try {                gpsUTCDate = utcFormater.parse(utcTime);            } catch (ParseException e) {                e.printStackTrace();            }            SimpleDateFormat localFormater = new SimpleDateFormat(YMDHMS_FORMAT);            localFormater.setTimeZone(TimeZone.getDefault());            String localTime = localFormater.format(gpsUTCDate.getTime());            return localTime;        } catch (Exception e) {            e.printStackTrace();        }        return "";    }    /**     * @param tTime     * @return     */    public static String getTimeRange(Context context, String tTime) {        String mTime = "";        try {            mTime = utc2Local(tTime);            if (TextUtils.isEmpty(mTime)) {                return "";            }            SimpleDateFormat sdf = new SimpleDateFormat(YMDHMS_FORMAT);            sdf.setTimeZone(TimeZone.getDefault());            Date curDate = new Date(System.currentTimeMillis());            String dataStrNew = sdf.format(curDate);            Date startTime = null;            try {                curDate = sdf.parse(dataStrNew);                startTime = sdf.parse(mTime);            } catch (ParseException e) {                e.printStackTrace();            }            long between = (curDate.getTime() - startTime.getTime()) / 1000;            int elapsedTime = (int) (between);            if (elapsedTime < 0) {                return context.getResources().getString(R.string.timeutils_default_oneminageo);            }            if (elapsedTime < seconds_of_1minute) {                return context.getResources().getString(R.string.timeutils_default_oneminageo);            }            if (elapsedTime < seconds_of_1hour) {                return elapsedTime / seconds_of_1minute + " " + context.getResources().getString(R.string.timeutils_default_moreminsageo);            }            if (elapsedTime < seconds_of_2hour) {                return context.getResources().getString(R.string.timeutils_default_onehourageo);            }            if (elapsedTime < seconds_of_3hour) {                return elapsedTime / seconds_of_1hour + " " + context.getResources().getString(R.string.timeutils_default_morehoursageo);            }            return "";        } catch (Exception e) {            e.printStackTrace();        }        return context.getResources().getString(R.string.timeutils_default_threehoursageo);    }    public static String getTimeRange(Context context, long time) {        long between = (System.currentTimeMillis() - time) / 1000;        int elapsedTime = (int) (between);        if (elapsedTime < 0) {            return context.getResources().getString(R.string.timeutils_default_oneminageo);        }        if (elapsedTime < seconds_of_1minute) {            return context.getResources().getString(R.string.timeutils_default_oneminageo);        }        if (elapsedTime < seconds_of_1hour) {            return elapsedTime / seconds_of_1minute + " " + context.getResources().getString(R.string.timeutils_default_moreminsageo);        }        if (elapsedTime < seconds_of_2hour) {            return context.getResources().getString(R.string.timeutils_default_onehourageo);        }        if (elapsedTime < seconds_of_3hour) {            return elapsedTime / seconds_of_1hour + " " + context.getResources().getString(R.string.timeutils_default_morehoursageo);        }        return "";    }    /**     * 时间戳转换成日期格式字符串     *     * @return     */    public static String timeStamp2Date(long seconds, String format) {        if (format == null || format.isEmpty()) {            format = "yyyy-MM-dd HH:mm:ss";        }        SimpleDateFormat sdf = new SimpleDateFormat(format);        return sdf.format(new Date(seconds));    }    public static String longToString(long longNum, String dateFormat) {        if (TextUtils.isEmpty(dateFormat)) {            dateFormat = YMDHMS_FORMAT;        }        SimpleDateFormat format = new SimpleDateFormat(dateFormat);        Date date = new Date(longNum);        return format.format(date);    }    public static String secondsToTime(int time) {        String timeStr = null;        int hour = 0;        int minute = 0;        int second = 0;        if (time <= 0)            return TIME_ZERO;        else {            minute = time / 60;            if (minute < 60) {                second = time % 60;                timeStr = unitFormat(minute) + ":" + unitFormat(second);            } else {                hour = minute / 60;                if (hour > 23)                    return TIME_MAX;                minute = minute % 60;                second = time - hour * 3600 - minute * 60;                timeStr = unitFormat(hour) + ":" + unitFormat(minute) + ":" + unitFormat(second);            }        }        return timeStr;    }    public static String unitFormat(int i) {        String retStr = null;        try {            if (i >= 0 && i < 10)                retStr = "0" + Integer.toString(i);            else                retStr = "" + i;        } catch (Exception e) {            e.printStackTrace();        }        return retStr;    }    public static long searchTimeToLong(String time) {        if (TextUtils.isEmpty(time)) {            return 0L;        }        try {            String[] split = time.split(" ");            String tempTime = split[0] + " " + split[1];            int diff = 0;            if ("pm".equals(split[2])) {                diff = 1000 * 12 * 60 * 60;            }            SimpleDateFormat sdf = new SimpleDateFormat(search_DateFormat);            sdf.setTimeZone(TimeZone.getDefault());            Date startTime = null;            startTime = sdf.parse(tempTime);            return (startTime.getTime() + diff);        } catch (ParseException e) {            e.printStackTrace();        }        return 0L;    }    public static String searchTimeFormat(String time) {        if (TextUtils.isEmpty(time)) {            return "";        }        try {            String date = (String) DateFormat.format("yyyy-MM-dd HH:mm:ss", searchTimeToLong(time));            return date;        } catch (Exception e) {            e.printStackTrace();        }        return "";    }}

更多相关文章

  1. Android中base64加密后的字符串带有“\n”导致出错的问题解决
  2. Android(安卓)与H5交互心得(Base64图片)
  3. %1$s %1$d Android(安卓)string (java & Android(安卓)格式化字符
  4. JsonObject和Gson详解
  5. android studio 格式化代码时注解不换行
  6. Android中字符串的拆分-split
  7. Android中实现日期时间选择器(DatePicker和TimePicker)
  8. Android初始化语言 (init.*.rc、init.conf文件格式)
  9. android 自定义控件(邮箱边写边出格式邮箱)

随机推荐

  1. 【Android 开发】:UI控件之 ImageView 实
  2. 说一下你眼中的Android的优点和不足之处(
  3. Android基站定位基本应用
  4. Android和iOS那个好?
  5. android之UI线程处理
  6. [置顶] Android(安卓)MotionEvent详解
  7. HTML5能否取代Android和iOS应用?
  8. Android 中ListView悬浮头部效果设置
  9. Android中的Message机制
  10. Android中的Binder机制的简要理解