时间工具类

来源:互联网 发布:linux清除所有arp缓存 编辑:程序博客网 时间:2024/06/05 23:15
public class TimeUtil {/** * 日期字符串转换 pattern可以从R.string中获取,datetime_pattern_yyyymmddhhmmss, * datetime_pattern_yyyy_mm_dd_hhmmss, * date_pattern_chinese,datetime_pattern_chinese等 *  * @param originalPattern *            初始日期格式 * @param targetPattern *            目标日期格式 * @param datetime *            日期字符串 * @return */public static String formatDateTime(Context context, int originalPatternStrId, int targetPatternStrId, String datetime) {SimpleDateFormat sdf = new SimpleDateFormat(context.getString(originalPatternStrId), Locale.getDefault());Date date = null;try {date = sdf.parse(datetime);} catch (ParseException e) {e.printStackTrace();}if (date != null) {sdf = new SimpleDateFormat(context.getString(targetPatternStrId), Locale.getDefault());String target = sdf.format(date);return target;}return null;}/** * @param strDate *            e.g. "2012-12-12 12:12:12" * @return Wed Dec 12 12:12:12 CST 2012 */public static Date string2Date(String strDate) {DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");Date date = null;try {date = dateFormat.parse(strDate);} catch (ParseException e) {try {// 第二种格式方案date = dateFormat2.parse(strDate);} catch (ParseException e1) {e1.printStackTrace();return null;}}return date;}/** * @param strDate *            2014-02-17 * @return long */public static long string2Long(String strDate) {Date date = string2Date(strDate);return date.getTime();}public static long string2Long2(String time) {Date date = null;try {date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(time);} catch (Exception e) {return 0;}return date.getTime();}/** * time应该为13位 *  * @param time * @return yyyy-MM-dd HH:mm:ss */public static String long2String(long time) {DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = new Date(time);String str = dateFormat.format(date);return str;}/** * @param time * @return yyyy-MM-dd */public static String long2String2(long time) {DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Date date = new Date(time);String str = dateFormat.format(date);return str;}/** * time应该为13位 *  * @param time * @return M月d日 HH:mm */public static String long2String3(long time) {DateFormat dateFormat = new SimpleDateFormat("M月d日 HH:mm");Date date = new Date(time);String str = dateFormat.format(date);return str;}/** * @param time * @return yy-MM-dd */public static String long2String4(long time) {DateFormat dateFormat = new SimpleDateFormat("yy-MM-dd");Date date = new Date(time);String str = dateFormat.format(date);return str;}/** * @param time *            yyyy-MM-dd HH:mm:ss or yyyy-MM-ddTHH:mm:ss * @return yyyy-MM-dd */public static String trim(String time) {DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Date date = string2Date(time);String str = dateFormat.format(date);return str;}/** * @param time *            yyyy-MM-dd HH:mm:ss * @return yyyy-MM-dd */public static String trim2(String time) {DateFormat dateFormat = new SimpleDateFormat("M月d日 HH:mm");Date date = string2Date(time);String str = dateFormat.format(date);return str;}/** * @param time *            yyyy-MM-dd HH:mm:ss * @return HH:mm */public static String trim3(String time) {DateFormat dateFormat = new SimpleDateFormat("HH:mm");Date date = string2Date(time);String str = dateFormat.format(date);return str;}/** * @param time *            yyyy-MM-dd * @return MM-dd */public static String string2String(String time) {DateFormat dateFormat = new SimpleDateFormat("MM-dd");Date date = string2Date(time);String str = dateFormat.format(date);return str;}/** * @param strDate *            yyyy-MM-dd * @return M or d */public static String string2String2(String strDate) {DateFormat dateFormat = new SimpleDateFormat("M-d");Date date = string2Date(strDate);String str = dateFormat.format(date);String[] temp = str.split("-");if (temp[1].equals("1")) {return temp[0] + "月";} else {return temp[1];}}/** * @param time *            yyyy-MM-ddTHH:mm:ss * @return yyyy-MM-dd HH:mm:ss */public static String string2String3(String time) {Date date = null;try {date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(time);} catch (ParseException e) {e.printStackTrace();}String str = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);return str;}/** * @param time *            yyyy-MM-ddTHH:mm:ss * @return yy-MM-dd */public static String string2String4(String time) {Date date = null;try {date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(time);} catch (Exception e) {return null;}String str = new SimpleDateFormat("yyyy-MM-dd").format(date);return str;}/** * @param time *            yyyy-MM-dd * @return yy-MM-dd */public static String string2String5(String time) {Date date = null;try {date = new SimpleDateFormat("yyyy-MM-dd").parse(time);} catch (Exception e) {return null;}String str = new SimpleDateFormat("yy-MM-dd").format(date);return str;}/** * 获取某一天距离今天多少天 *  * @param date *            yyyy-MM-dd'T'HH:mm:ss * @return */public static int getPassedDays(String date) {SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");int day = 0;try {Date passedDate = myFormatter.parse(date);day = (int) ((System.currentTimeMillis() - passedDate.getTime()) / (24 * 60 * 60 * 1000)) + 1;} catch (Exception e) {return 0;}return day;}/** *  * 获取当天开始时间 *  * @param index *            0为当天,1为前一天,以此类推 *  * @return e.g. 1391702400 */public static long getStartTime(int index) {Calendar todayStart = Calendar.getInstance();todayStart.set(Calendar.HOUR, 0);todayStart.set(Calendar.MINUTE, 0);todayStart.set(Calendar.SECOND, 0);todayStart.set(Calendar.MILLISECOND, 0);return todayStart.getTime().getTime() / 1000 - index * 3600 * 24;}/** * 获取当天结束时间 *  * @param index *            0为当天,1为前一天,以此类推 *  * @return e.g. 1391788799 */public static long getEndTime(int index) {Calendar todayEnd = Calendar.getInstance();todayEnd.set(Calendar.HOUR, 23);todayEnd.set(Calendar.MINUTE, 59);todayEnd.set(Calendar.SECOND, 59);todayEnd.set(Calendar.MILLISECOND, 999);return todayEnd.getTime().getTime() / 1000 - index * 3600 * 24;}/** *  * @param minute *            140 * @return 2小时20分钟 */public static String second2Hour(int second) {int minute = second / 60;if (second % 60 > 30) {minute += 1;}boolean hadAppend = false;StringBuilder builder = new StringBuilder();if (minute >= 1440) {builder.append(minute / 1440 + "天");minute %= 1440;hadAppend = true;}if (minute >= 60) {builder.append(minute / 60 + "小时");minute %= 60;hadAppend = true;}if (!hadAppend || minute != 0) {builder.append(minute + "分钟");}return builder.toString();}/** *  * @param date *            2014-02-12 * @return */public static boolean isToday(String date) {String today = TimeUtil.long2String2(Calendar.getInstance().getTimeInMillis());if (date.equals(today)) {return true;}return false;}/** *  * @param date *            2014-02-12 * @return */public static boolean isYesterday(String date) {String yesterday = TimeUtil.long2String2(Calendar.getInstance().getTimeInMillis() - 3600 * 24 * 1000L);if (date.equals(yesterday)) {return true;}return false;}/** *  * @param date *            2014-02-12 * @return */public static boolean isTheDayBeforeYesterday(String date) {String theDayBeforeYesterday = TimeUtil.long2String2(Calendar.getInstance().getTimeInMillis() - 3600 * 24 * 1000L * 2);if (date.equals(theDayBeforeYesterday)) {return true;}return false;}/** *  * @param date *            2014-02-12 * @return */public static String theDayOfWeek(String date) {Calendar calendar = Calendar.getInstance();calendar.setTime(string2Date(date));int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);String temp = null;switch (dayOfWeek) {case 1:temp = "周日";break;case 2:temp = "周一";break;case 3:temp = "周二";break;case 4:temp = "周三";break;case 5:temp = "周四";break;case 6:temp = "周五";break;case 7:temp = "周六";break;default:break;}return temp;}public static String convert(String mDate) {if (TimeUtil.isToday(mDate)) {return "今天";} else if (TimeUtil.isYesterday(mDate)) {return "昨天";} else if (TimeUtil.isTheDayBeforeYesterday(mDate)) {return "前天";} else {return TimeUtil.theDayOfWeek(mDate);}}/** * 获取同步时间 *  * @return */public static String recentUpdateTime() {long recentUpdateTime = PreferenceUtil.getLong(Preferences.RECENT_UPDATE_TIME);long currentTime = System.currentTimeMillis();int temp = (int) ((currentTime - recentUpdateTime) / 1000);// 换算成以秒为单位String reString = null;if (temp < 60) {reString = "刚刚同步";} else if (temp < 1800) {reString = temp / 60 + "分钟前同步";} else if (temp < 3600) {reString = "半小时前同步";} else if (temp < 3600 * 24) {reString = temp / 3600 + "小时前同步";} else if (temp < 3600 * 24 * 7) {reString = temp / (3600 * 24) + "天前同步";} else if (temp < 3600 * 24 * 7 * 4) {reString = temp / (3600 * 24 * 7) + "周前同步";} else if (temp < 3600 * 24 * 30 * 12) {reString = temp / (3600 * 24 * 30) + "个月前同步";} else if (temp < 3600 * 24 * 365 * 10) {reString = temp / (3600 * 24 * 365) + "年前同步";} else {reString = long2String(recentUpdateTime);}if (recentUpdateTime == 0) {reString = "";}return reString;}/** * 根据给定日期,添加一天时间 *  * @param date *            yyyy-mm-dd * @return yyyy-mm-dd */public static String obtainEndDate(String date) {return TimeUtil.long2String(TimeUtil.string2Long(date) + 86400 * 1000);}}



 

0 0