欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Android日期工具类DateHelper,androiddatehelper,一个工具类,可以得到指定

来源: javaer 分享于  点击 10337 次 点评:78

Android日期工具类DateHelper,androiddatehelper,一个工具类,可以得到指定


一个工具类,可以得到指定月份的天数,可以得到以前或以后多少天、周、月、年的日期等。 代码如下: ```javaimport android.annotation.SuppressLint;import android.text.TextUtils;

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;

@SuppressLint("SimpleDateFormat")public class DateHelper {

private static DateHelper util;public static DateHelper getInstance() {    if (util == null) {        util = new DateHelper();    }    return util;}private DateHelper() {    super();}public SimpleDateFormat date_Formater_1 = new SimpleDateFormat(        "yyyy-MM-dd HH:mm:ss");public SimpleDateFormat date_Formater_2 = new SimpleDateFormat("yyyy-MM-dd");public Date getDate(String dateStr) {    Date date = new Date();    if (TextUtils.isEmpty(dateStr)) {        return date;    }    try {        date = date_Formater_1.parse(dateStr);        return date;    } catch (ParseException e) {        e.printStackTrace();    }    return date;}public String getDataString_1(Date date) {    if (date == null) {        date = new Date();    }    String str = date_Formater_1.format(date);    return str;}public String getDataString_2(Date date) {    if (date == null) {        date = new Date();    }    String str = date_Formater_2.format(date);    return str;}/** * 将日期变成常见中文格式 *  * @param date * @return */public String getRencentTime(String date) {    Date time = getDate(date);    if (time == null) {        return "一个月前";    }    String ftime = "";    Calendar cal = Calendar.getInstance();    String curDate = date_Formater_2.format(cal.getTime());    String paramDate = date_Formater_2.format(time);    if (curDate.equals(paramDate)) {        int hour = (int) ((cal.getTimeInMillis() - time.getTime()) / 3600000);        if (hour == 0)            ftime = Math.max(                    (cal.getTimeInMillis() - time.getTime()) / 60000, 1)                    + "分钟前";        else            ftime = hour + "小时前";        return ftime;    }    long lt = time.getTime() / 86400000;    long ct = cal.getTimeInMillis() / 86400000;    int days = (int) (ct - lt);    if (days == 0) {        int hour = (int) ((cal.getTimeInMillis() - time.getTime()) / 3600000);        if (hour == 0)            ftime = Math.max(                    (cal.getTimeInMillis() - time.getTime()) / 60000, 1)                    + "分钟前";        else            ftime = hour + "小时前";    } else if (days == 1) {        ftime = "昨天";    } else if (days == 2) {        ftime = "前天";    } else if (days > 2 &amp;&amp; days <= 10) {        ftime = days + "天前";    } else if (days > 10) {        ftime = "一个月前";    } else {        ftime = date_Formater_2.format(time);    }    return ftime;}/** * 日期时间格式转换 *  * @param typeFrom *            原格式 * @param typeTo *            转为格式 * @param value *            传入的要转换的参数 * @return */public String stringDateToStringData(String typeFrom, String typeTo,        String value) {    String re = value;    SimpleDateFormat sdfFrom = new SimpleDateFormat(typeFrom);    SimpleDateFormat sdfTo = new SimpleDateFormat(typeTo);    try {        re = sdfTo.format(sdfFrom.parse(re));    } catch (ParseException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }    return re;}/** * 得到这个月有多少天 *  * @param year * @param month * @return */public int getMonthLastDay(int year, int month) {    if (month == 0) {        return 0;    }    Calendar a = Calendar.getInstance();    a.set(Calendar.YEAR, year);    a.set(Calendar.MONTH, month - 1);    a.set(Calendar.DATE, 1);// 把日期设置为当月第一天    a.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天    int maxDate = a.get(Calendar.DATE);    return maxDate;}/** * 得到年份 *  * @return */public String getCurrentYear() {    Calendar c = Calendar.getInstance();    return c.get(Calendar.YEAR) + "";}/** * 得到月份 *  * @return */public String getCurrentMonth() {    Calendar c = Calendar.getInstance();    return (c.get(Calendar.MONTH) + 1) + "";}/** * 获得当天的日期 *  * @return */public String getCurrDay() {    Calendar c = Calendar.getInstance();    return c.get(Calendar.DAY_OF_MONTH) + "";}/** * 得到几天/周/月/年后的日期,整数往后推,负数往前移动 *  * @param calendar * @param calendarType *            Calendar.DATE,Calendar.WEEK_OF_YEAR,Calendar.MONTH,Calendar. *            YEAR * @param next * @return */public String getDayByDate(Calendar calendar, int calendarType, int next) {    calendar.add(calendarType, next);    Date date = calendar.getTime();    String dateString = date_Formater_1.format(date);    return dateString;}

}

使用方法```javaString dataStr = DateHelper.getInstance().getDataString_1(null);        String toStringData = DateHelper.getInstance().stringDateToStringData("yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd", dataStr);        String date = DateHelper.getInstance().getDayByDate(                Calendar.getInstance(), Calendar.DATE, 1);        String week = DateHelper.getInstance().getDayByDate(                Calendar.getInstance(), Calendar.WEEK_OF_YEAR, 1);        String month = DateHelper.getInstance().getDayByDate(                Calendar.getInstance(), Calendar.MONTH, 1);        String year = DateHelper.getInstance().getDayByDate(                Calendar.getInstance(), Calendar.YEAR, 1);        int lastDay = DateHelper.getInstance().getMonthLastDay(2015, 2);        System.out.println(dataStr);        System.out.println(toStringData);        System.out.println(date);        System.out.println(week);        System.out.println(month);        System.out.println(year);        System.out.println("2月有"+lastDay+"天");
相关栏目:

用户点评