分享一个使用较方便的日期计算类:
package com.utils.datecount; import java.text.SimpleDateFormat; import java.util.Date; import java.util.GregorianCalendar; public class DateCount { /** * datelevel 0为7天内,1为7到15天,2为15天以上 */ public static int datelevel = 0; public static int positionweek = -1; public static int position2week = -1; /** * 获取与今天时间差 * @param endTime * @return */ public static double countDate(String startTime) { Date curDate = new Date(System.currentTimeMillis());// 获取当前时间 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");// 输入日期的格式 Date date = null; try { date = simpleDateFormat.parse(startTime); if (date == null) return 0; } catch (java.text.ParseException e) { return 0; // e.printStackTrace(); } GregorianCalendar cal1 = new GregorianCalendar(); GregorianCalendar cal2 = new GregorianCalendar(); cal1.setTime(date); cal2.setTime(curDate); double dayCount = (cal2.getTimeInMillis() - cal1.getTimeInMillis()) / (1000 * 3600 * 24);// 从间隔毫秒变成间隔天数 return dayCount; } }
Android日期格式化工具类:
package com.utils.tools; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import android.text.TextUtils; import android.text.format.DateFormat; /** * 日期格式化工具类 * * @author Harryxu * */ public class DateUtil { public static Date convert2Date(String format, String dateStr) { Date date = null; try { if (TextUtils.isEmpty(format)) format = "yyyy-MM-dd HH:mm:ss"; return new java.sql.Date(new SimpleDateFormat(format).parse(dateStr).getTime()); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return date; } public static CharSequence formatDate(String format, String dateStr) { Date date = null; try { date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateStr); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } if (date == null) date = new Date(); if (TextUtils.isEmpty(format)) format = "yyyy-MM-dd"; return DateFormat.format(format, date); } /** * 根据偏量值取得传入时间的前后天数 * * @param date * @param offset 时间偏量值 * @return */ public static Date getNextPreDay(Date date, int offset) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, offset); date = calendar.getTime(); return date; } public static int getDays(Date date1, Date date2) { Date kaishi = date1, jieshu = date2; if (date1.compareTo(date2) > 0) { kaishi = date2; jieshu = date1; } long diff = jieshu.getTime() - kaishi.getTime(); float days = diff / 24f / 60 / 60 / 1000; return (int) ((days - (int) days) >= 0 ? (days + 1) : days); } public static String addMinites( String time, int addminite){ SimpleDateFormat myFormatter = new SimpleDateFormat("HH:mm"); Calendar totime = Calendar.getInstance(); java.util.Date date = null; try { date = myFormatter.parse(time); } catch (ParseException e) { e.printStackTrace(); } if (date == null) return null; totime.setTime(date); totime.add(Calendar.MINUTE, addminite); date = totime.getTime(); return myFormatter.format(date); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。