栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android开发中日期工具类DateUtil完整实例

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android开发中日期工具类DateUtil完整实例

本文实例讲述了Android开发中日期工具类DateUtil。分享给大家供大家参考,具体如下:


@SuppressLint("SimpleDateFormat")
public class DateUtil {
  private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
  private static final SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
  public static Date str2Date(String str) {
    return str2Date(str, null);
  }
  
  public static Date str2Date(String str, String format) {
    if (str == null || str.length() == 0) {
      return null;
    }
    if (format == null || format.length() == 0) {
      format = FORMAT;
    }
    Date date = null;
    try {
      SimpleDateFormat sdf = new SimpleDateFormat(format);
      date = sdf.parse(str);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return date;
  }
  public static Calendar str2Calendar(String str) {
    return str2Calendar(str, null);
  }
  public static Calendar str2Calendar(String str, String format) {
    Date date = str2Date(str, format);
    if (date == null) {
      return null;
    }
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    return c;
  }
  public static String date2Str(Calendar c) {// yyyy-MM-dd HH:mm:ss
    return date2Str(c, null);
  }
  public static String date2Str(Calendar c, String format) {
    if (c == null) {
      return null;
    }
    return date2Str(c.getTime(), format);
  }
  public static String date2Str(Date d) {// yyyy-MM-dd HH:mm:ss
    return date2Str(d, null);
  }
  public static String date2Str(Date d, String format) {// yyyy-MM-dd HH:mm:ss
    if (d == null) {
      return null;
    }
    if (format == null || format.length() == 0) {
      format = FORMAT;
    }
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    String s = sdf.format(d);
    return s;
  }
  public static String getCurDateStr() {
    Calendar c = Calendar.getInstance();
    c.setTime(new Date());
    return c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DAY_OF_MONTH) + "-"
 + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND);
  }
  
  public static String getCurDateStr(String format) {
    Calendar c = Calendar.getInstance();
    return date2Str(c, format);
  }
  
  public static String getMillon(long time) {
    return new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(time);
  }
  
  public static String getDay(long time) {
    return new SimpleDateFormat("yyyy-MM-dd").format(time);
  }
  
  public static String getSMillon(long time) {
    return new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS").format(time);
  }
  
  public static Date StringToDate(String dateStr, String formatStr) {
    DateFormat sdf = new SimpleDateFormat(formatStr);
    Date date = null;
    try {
      date = sdf.parse(dateStr);
    } catch (ParseException e) {
      e.printStackTrace();
    }
    return date;
  }
  
  public static String converTime(long timestamp) {
    long currentSeconds = System.currentTimeMillis() / 1000;
    long timeGap = currentSeconds - timestamp;// 与现在时间相差秒数
    String timeStr = null;
    if (timeGap > 24 * 60 * 60) {// 1天以上
      timeStr = timeGap / (24 * 60 * 60) + "天前";
    } else if (timeGap > 60 * 60) {// 1小时-24小时
      timeStr = timeGap / (60 * 60) + "小时前";
    } else if (timeGap > 60) {// 1分钟-59分钟
      timeStr = timeGap / 60 + "分钟前";
    } else {// 1秒钟-59秒钟
      timeStr = "刚刚";
    }
    return timeStr;
  }
  
  public static String getStandardTime(long timestamp) {
    SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日 HH:mm");
    Date date = new Date(timestamp * 1000);
    sdf.format(date);
    return sdf.format(date);
  }
  
  public static String currentDatetime() {
    return datetimeFormat.format(now());
  }
  
  public static String formatDatetime(Date date) {
    return datetimeFormat.format(date);
  }
  
  public static String currentTime() {
    return timeFormat.format(now());
  }
  
  public static String formatTime(Date date) {
    return timeFormat.format(date);
  }
  
  public static Date now() {
    return new Date();
  }
  public static Calendar calendar() {
    Calendar cal = GregorianCalendar.getInstance(Locale.CHINESE);
    cal.setFirstDayOfWeek(Calendar.MONDAY);
    return cal;
  }
  
  public static long millis() {
    return System.currentTimeMillis();
  }
  
  public static int month() {
    return calendar().get(Calendar.MONTH) + 1;
  }
  
  public static int dayOfMonth() {
    return calendar().get(Calendar.DAY_OF_MONTH);
  }
  
  public static int dayOfWeek() {
    return calendar().get(Calendar.DAY_OF_WEEK);
  }
  
  public static int dayOfYear() {
    return calendar().get(Calendar.DAY_OF_YEAR);
  }
  
  public static boolean isBefore(Date src, Date dst) {
    return src.before(dst);
  }
  
  public static boolean isAfter(Date src, Date dst) {
    return src.after(dst);
  }
  
  public static boolean isEqual(Date date1, Date date2) {
    return date1.compareTo(date2) == 0;
  }
  
  public static boolean between(Date beginDate, Date endDate, Date src) {
    return beginDate.before(src) && endDate.after(src);
  }
  
  public static Date lastDayOfMonth() {
    Calendar cal = calendar();
    cal.set(Calendar.DAY_OF_MONTH, 0); // M月置零
    cal.set(Calendar.HOUR_OF_DAY, 0);// H置零
    cal.set(Calendar.MINUTE, 0);// m置零
    cal.set(Calendar.SECOND, 0);// s置零
    cal.set(Calendar.MILLISECOND, 0);// S置零
    cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1);// 月份+1
    cal.set(Calendar.MILLISECOND, -1);// 毫秒-1
    return cal.getTime();
  }
  
  public static Date firstDayOfMonth() {
    Calendar cal = calendar();
    cal.set(Calendar.DAY_OF_MONTH, 1); // M月置1
    cal.set(Calendar.HOUR_OF_DAY, 0);// H置零
    cal.set(Calendar.MINUTE, 0);// m置零
    cal.set(Calendar.SECOND, 0);// s置零
    cal.set(Calendar.MILLISECOND, 0);// S置零
    return cal.getTime();
  }
  private static Date weekDay(int week) {
    Calendar cal = calendar();
    cal.set(Calendar.DAY_OF_WEEK, week);
    return cal.getTime();
  }
  
  public static Date friday() {
    return weekDay(Calendar.FRIDAY);
  }
  
  public static Date saturday() {
    return weekDay(Calendar.SATURDAY);
  }
  
  public static Date sunday() {
    return weekDay(Calendar.SUNDAY);
  }
  
  public static Date parseDatetime(String datetime) throws ParseException {
    return datetimeFormat.parse(datetime);
  }
  
  public static Date parseDate(String date) throws ParseException {
    return dateFormat.parse(date);
  }
  
  public static Date parseTime(String time) throws ParseException {
    return timeFormat.parse(time);
  }
  
  public static Date parseDatetime(String datetime, String pattern) throws ParseException {
    SimpleDateFormat format = (SimpleDateFormat) datetimeFormat.clone();
    format.applyPattern(pattern);
    return format.parse(datetime);
  }
  
  public static String parseSecond(int second) {
    if (second >= 60) {
      return second / 60 + "分";
    } else if (second >= 60 * 60) {
      return second / 60 * 60 + "时";
    } else if (second >= 60 * 60 * 24) {
      return second / 60 * 60 + "天";
    } else {
      return second + "秒";
    }
  }
  
  public static int compareDate(String begin, String end) {
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
    try {
      Date beginDate = df.parse(begin);
      Date endDate = df.parse(end);
      if (beginDate.getTime() < endDate.getTime()) {
 return 1;
      } else if (beginDate.getTime() > endDate.getTime()) {
 return -1;
      } else {
 return 0;
      }
    } catch (Exception exception) {
      exception.printStackTrace();
    }
    return 0;
  }
  
  public int getYear(Date date){
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    return c.get(Calendar.YEAR);
  }
  
  public int getMonth(Date date){
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    return c.get(Calendar.MONTH) + 1;
  }
  
  public int getWeek(Date date){
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    return c.get(Calendar.WEEK_OF_YEAR);
  }
  
  public int getDay(Date date){
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    return c.get(Calendar.DATE);
  }
  
  public long getDayDiff(Date begin, Date end){
    long day = 1;
    if(end.getTime() < begin.getTime()){
      day = -1;
    }else if(end.getTime() == begin.getTime()){
      day = 1;
    }else {
      day += (end.getTime() - begin.getTime())/(24 * 60 * 60 * 1000) ;
    }
    return day;
  }
}

PS:这里再为大家推荐几款关于日期与时间计算的在线工具供大家参考使用:

在线日期/天数计算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi

在线万年历日历:
http://tools.jb51.net/bianmin/wannianli

在线阴历/阳历转换工具:
http://tools.jb51.net/bianmin/yinli2yangli

Unix时间戳(timestamp)转换工具:
http://tools.jb51.net/code/unixtime

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android日期与时间操作技巧总结》、《Android开发入门与进阶教程》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/157329.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号