时间工具类
来源:互联网 发布:c语言字符串最前面是0 编辑:程序博客网 时间:2024/06/05 17:30
import android.widget.TextView;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.TimeZone;public class TimeFormartUtils { public static String TAG = "cy==TimeUtils"; public static String getCurrentTimeSeconds() { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date curDate = new Date(System.currentTimeMillis());//获取当前时间 return formatter.format(curDate); } public static String getCurrentDay() { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date curDate = new Date(System.currentTimeMillis());//获取当前时间 return formatter.format(curDate); } public static String getCurrentTime() { SimpleDateFormat format = new SimpleDateFormat("HH:mm"); return format.format(new Date()); } public static String getCurrentDayHaveChinese() { SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日"); Date curDate = new Date(System.currentTimeMillis());//获取当前时间 return formatter.format(curDate); } public static String getAssign(Date assignDay) { SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd"); return formatDate.format(assignDay); } public static String getCurrentDayHaveChar() { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date curDate = new Date(System.currentTimeMillis());//获取当前时间 return formatter.format(curDate); } public static String getAssignAllNum(Date assignDay) { SimpleDateFormat formatDate = new SimpleDateFormat("yyyyMMdd"); return formatDate.format(assignDay); } //把字符串解析成一个时间 public static Date getDateFromAllNumStr(String str) { SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { return formatDate.parse(str); } catch (ParseException e) { e.printStackTrace(); } return null; } public static String getYearFromDate(Date date) { SimpleDateFormat format = new SimpleDateFormat("yyyy"); return format.format(date); } public static String getMonthFromDate(Date date) { SimpleDateFormat format = new SimpleDateFormat("MM"); return format.format(date); } public static String getDayFromDate(Date date) { SimpleDateFormat format = new SimpleDateFormat("dd"); return format.format(date); } public static void setTime(TextView weekTv, TextView dateTv) { final Calendar c = Calendar.getInstance(); c.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); String mYear = String.valueOf(c.get(Calendar.YEAR)); // 获取当前年份 String mMonth = String.valueOf(c.get(Calendar.MONTH) + 1);// 获取当前月份 String mDay = String.valueOf(c.get(Calendar.DAY_OF_MONTH));// 获取当前月份的日期号码 String mWay = String.valueOf(c.get(Calendar.DAY_OF_WEEK)); if ("1".equals(mWay)) { mWay = "天"; } else if ("2".equals(mWay)) { mWay = "一"; } else if ("3".equals(mWay)) { mWay = "二"; } else if ("4".equals(mWay)) { mWay = "三"; } else if ("5".equals(mWay)) { mWay = "四"; } else if ("6".equals(mWay)) { mWay = "五"; } else if ("7".equals(mWay)) { mWay = "六"; } weekTv.setText("星期" + mWay); dateTv.setText(mYear + "年" + (Integer.parseInt(mMonth) < 10 ? (0 + mMonth) : (mMonth)) + "月" + (Integer.parseInt(mDay) < 10 ? (0 + mDay) : (mDay)) + "日"); } /** * 两个时间之间相差距离多少天 * * @return 相差天数 */ public static long getDistanceDays(String str1, String str2) throws Exception { DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date one; Date two; long days = 0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff; if (time1 < time2) { diff = time2 - time1; } else { diff = time1 - time2; } days = diff / (1000 * 60 * 60 * 24); } catch (ParseException e) { e.printStackTrace(); } return days; } /** * 两个时间相差距离多少天多少小时多少分多少秒 * * @param str1 时间参数 1 格式:1990-01-01 12:00:00 * @param str2 时间参数 2 格式:2009-01-01 12:00:00 * @return long[] 返回值为:{天, 时, 分, 秒} */ public static long[] getDistanceTimes(String str1, String str2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; long day = 0; long hour = 0; long min = 0; long sec = 0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff; if (time1 < time2) { diff = time2 - time1; } else { diff = time1 - time2; } day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60); sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); } catch (ParseException e) { e.printStackTrace(); } long[] times = {day, hour, min, sec}; return times; } /** * 两个时间相差距离多少天多少小时多少分多少秒 * * @param str1 时间参数 1 格式:1990-01-01 12:00:00 * @param str2 时间参数 2 格式:2009-01-01 12:00:00 * @return String 返回值为:xx天xx小时xx分xx秒 */ public static String getDistanceTime(String str1, String str2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; long day = 0; long hour = 0; long min = 0; long sec = 0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff; if (time1 < time2) { diff = time2 - time1; } else { diff = time1 - time2; } day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60); sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); } catch (ParseException e) { e.printStackTrace(); } return day + "天" + hour + "小时" + min + "分" + sec + "秒"; } /** * 两个时间相差距离多少天 * * @param str1 时间参数 1 格式:1990-01-01 12:00:00 * @param str2 时间参数 2 格式:2009-01-01 12:00:00 * @return long[] 返回值为:{天, 时, 分, 秒} */ public static long getDistanceDay(String str1, String str2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; long day = 0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff; if (time1 < time2) { diff = time2 - time1; day = diff / (24 * 60 * 60 * 1000); } } catch (ParseException e) { e.printStackTrace(); } return day; } /** * 传递一个时间进来,对传进来的时间做修改(增加)然后范围String 字符串 * * @param time 2017-08-12 15:34:22 * @param addDays 3 * @return */ public static String chengTimeAdd(String time, int addDays) { if (time == null || time.equals("")) { return "时间转换失败"; } DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date parse = df.parse(time); long newTime = parse.getTime() + addDays * 24 * 60 * 60 * 1000; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return formatter.format(new Date(newTime)); } catch (ParseException e) { e.printStackTrace(); return "时间转换异常"; } } /** * @param str1 时间参数 1 格式:1990-01-01 12:00:00 * @param str2 时间参数 2 格式:2009-01-01 12:00:00 * @return long[] 返回值为:{天, 时, 分, 秒} */ public static boolean isSameDay(String str1, String str2) { Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); cal1.setTime(getDateFromAllNumStr(str1)); cal2.setTime(getDateFromAllNumStr(str2)); boolean isScameYear = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR); boolean isScameMonth = isScameYear && cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH); boolean isScameDay = isScameMonth && cal1.get(Calendar.DAY_OF_MONTH) == cal2.get(Calendar.DAY_OF_MONTH); return isScameDay; } /** * 判断当前时间是否在计划截至时间+72小时的倒数24小时内 * 传进来的是截至时间(没加72的) */ public static boolean isNeed24(String time) { String endTime = chengTimeAdd(time, 3);//已经加了72小时的时间 String currentTime = getCurrentTimeSeconds();//当前时间 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; try { one = df.parse(endTime); two = df.parse(currentTime); long time1 = one.getTime(); long time2 = two.getTime(); if (time2 - time1 <= 0) { long day = (time1 - time2) / (24 * 60 * 60 * 1000); return day == 0; } else { Logger.i(TAG, "说明是截至时间+72小时已经过了"); return false; } } catch (ParseException e) { e.printStackTrace(); } return false; } /** * 判断当前计划有没有超过72小时 * 返回true代表不可以上传,因为超过了72小时 * false为可以上传 */ public static boolean currentPlanCanUpload(String time) { String endTime = chengTimeAdd(time, 3);//已经加了72小时的时间 String currentTime = getCurrentTimeSeconds();//当前时间 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; try { one = df.parse(endTime); two = df.parse(currentTime); long end = one.getTime(); long current = two.getTime(); if (current - end > 0) return true; } catch (ParseException e) { e.printStackTrace(); } return false; } /** * 判断有没有超过截至时间,这里传进来的时间是已经了了72小时的 * * @param endTime * @return */ public static boolean currentPlanCanUpload2(String endTime) { String currentTime = getCurrentTimeSeconds();//当前时间 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; try { one = df.parse(endTime); two = df.parse(currentTime); long end = one.getTime(); long current = two.getTime(); if (current - end > 0) return true; } catch (ParseException e) { e.printStackTrace(); } return false; } /** * 判断传进来的后面一个时间(str2)是否比前面时间(str1)大 * * @param str1 * @param str2 * @return */ public static boolean isOver(String str1, String str2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); if (time1 < time2) { return true; } else { return false; } } catch (ParseException e) { e.printStackTrace(); } return false; } /** * 传入一个long类型的时间,转换成02:18:34格式的时间长度。用来处理 * 语音长度和视频长度很合适。 * @param beginTime * @param endTime * @return */ public static String convertTime(long beginTime, long endTime) { return String.format("%02d:%02d:%02d", (endTime - beginTime) / 1000 / 60 / 60, (endTime - beginTime) / 1000 / 60 % 60, (endTime - beginTime) / 1000 % 60); }}
会持续增加。
阅读全文
0 0
- 【Android工具】时间工具类
- 时间计算工具类
- 时间工具类
- 时间工具类
- java时间工具类
- java 时间工具类
- 时间工具类[DateUtil]
- 时间工具类(DateUtil)
- 时间工具类(DateUtil)
- Java时间工具类
- Java时间工具类
- JS时间工具类
- 日期时间工具类
- PHP时间工具类
- 时间工具类
- 时间工具类
- 时间处理工具类
- 时间工具类(DateUtil)
- 排序算法之快排
- C++拷贝构造函数详解
- bzoj 4300(dp)(贪心)
- Java多线程--顺序一致性内存模型
- 在Android中使用Base64上传图片
- 时间工具类
- Python 输出JSON对象数组&写入数据到MySQL
- C++中类所占内存空间大小C++中类所占内存空间大小
- Andrew NG 机器学习 练习3-Multiclass Classification and Neural Networks
- 1205:ASCLL码排序
- 树莓派 Samba共享文件
- expect
- 九度[1012]-畅通工程
- 新的开始