java 时间工具类
来源:互联网 发布:sql增加自增字段语句 编辑:程序博客网 时间:2024/05/22 04:59
ackage com.lion.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;/** * 时间操作工具 * @author ven * */public class TimeUtil { private static final String DATETIME = "yyyy-MM-dd HH:mm:ss"; private static final String DATE = "yyyy-MM-dd"; private static final String TIME = "HH:mm:dd"; private static final String YEAR = "yyyy"; private static final String MONTH = "MM"; private static final String DAY = "dd"; private static final String HOUR = "HH"; private static final String MINUTE = "mm"; private static final String SEC = "ss"; private static final String DATETIMECHINESE = "yyyy年MM月dd日 HH时mm分ss秒"; private static final String DATECHINESE = "yyyy年MM月dd日"; private static final String SIMPLEDATECHINESE = "MM月dd日"; /** * 判断一个字符串日期是否过期 * * @param dateTime * @return (int) 过期返回1,不过期返回0 * @throws ParseException */ public static int isOutOfDate(String dateTime) throws ParseException { long nowTimeLong = new Date().getTime(); long ckTimeLong = new SimpleDateFormat(DATETIME).parse(dateTime) .getTime(); if (nowTimeLong - ckTimeLong > 0) {// 过期 return 1; } return 0; } /** * 判断是否在一个起止日期内<br/> * 例如:2012-04-05 00:00:00~2012-04-15 00:00:00 * * @param start_time * @param over_time * @return (int) 在这个时间段内返回1,不在返回0 * @throws ParseException */ public static int isOutOfDate(String start_time, String over_time) throws ParseException { long nowTimeLong = new Date().getTime(); long ckStartTimeLong = new SimpleDateFormat(DATETIME).parse(start_time) .getTime(); long ckOverTimeLong = new SimpleDateFormat(DATETIME).parse(over_time) .getTime(); if (nowTimeLong > ckStartTimeLong && nowTimeLong < ckOverTimeLong) { return 1; } return 0; } /** * 判断一个自定义日期是否在一个起止日期内<br/> * 例如:判断2012-01-05 00:00:00是否在2012-04-05 00:00:00~2012-04-15 00:00:00 * * @param start_time * @param over_time * @return (int) 在这个时间段内返回1,不在返回0 * @throws ParseException */ public static int isOutOfDate(String time, String start_time, String over_time) throws ParseException { long timeLong = new SimpleDateFormat(DATETIME).parse(time).getTime(); long ckStartTimeLong = new SimpleDateFormat(DATETIME).parse(start_time) .getTime(); long ckOverTimeLong = new SimpleDateFormat(DATETIME).parse(over_time) .getTime(); if (timeLong > ckStartTimeLong && timeLong < ckOverTimeLong) { return 1; } return 0; } /** * 判断是否在一个时间段内<br/> * 例如:8:00~10:00 * * @param time_limit_start * @param time_limit_over * @return (int) 1在这个时间段内,0不在这个时间段内 * @throws ParseException */ public static int isInTime(String time_limit_start, String time_limit_over) throws ParseException { // 获取当前日期 String nowDate = new SimpleDateFormat(DATE).format(new Date()); return isOutOfDate(nowDate + " " + time_limit_start, nowDate + " " + time_limit_over); } /** * 判断一个自定义时间是否在一个时间段内<br/> * 例如:判断02:00是否在08:00~10:00时间段内 * * @param time_limit_start * @param time_limit_over * @return (int) 1在这个时间段内,0不在这个时间段内 * @throws ParseException */ public static int isInTime(String time, String time_limit_start, String time_limit_over) throws ParseException { String nowDate = new SimpleDateFormat(DATE).format(new Date()); return isOutOfDate(nowDate + " " + time, nowDate + " " + time_limit_start, nowDate + " " + time_limit_over); } /** * 取得自定义月份后的日期,如13个月以后的时间 * * @param monthNum * 往后几个月 * @return 时间字符串 */ public static String crateTimeFromNowTimeByMonth(int monthNum) { Calendar calendar = new GregorianCalendar(Integer.parseInt(getYear()), Integer.parseInt(getMonth()) - 1, Integer.parseInt(getDay()), Integer.parseInt(getHour()), Integer.parseInt(getMinute()), Integer.parseInt(getSec())); calendar.add(Calendar.MONTH, monthNum); return new SimpleDateFormat(DATETIME).format(calendar.getTime()); } /** * 取得自定义天数后的日期,如13天以后的时间 * * @param dayNum * 往后几天 * @return 时间字符串(DateTime) */ public static String crateTimeFromNowTimeByDay(int dayNum) { Calendar calendar = new GregorianCalendar(Integer.parseInt(getYear()), Integer.parseInt(getMonth()) - 1, Integer.parseInt(getDay()), Integer.parseInt(getHour()), Integer.parseInt(getMinute()), Integer.parseInt(getSec())); calendar.add(Calendar.DATE, dayNum); return new SimpleDateFormat(DATETIME).format(calendar.getTime()); } /** * 取得自定义天数后的日期,如13天以后的时间 * * @param dayNum * 往后几天 * @return 时间字符串(Date) */ public static String crateTimeFromNowDayByDay(int dayNum) { Calendar calendar = new GregorianCalendar(Integer.parseInt(getYear()), Integer.parseInt(getMonth()) - 1, Integer.parseInt(getDay()), Integer.parseInt(getHour()), Integer.parseInt(getMinute()), Integer.parseInt(getSec())); calendar.add(Calendar.DATE, dayNum); return new SimpleDateFormat(DATE).format(calendar.getTime()); } /** * 取得自定义时间后再过几分钟的时间,如12:05以后5分钟的时间 * * @param dayNum * 往后几天 * @return 时间字符串(Date) */ public static String crateTimeFromNowDayByTime(int timeNum) { Calendar calendar = new GregorianCalendar(Integer.parseInt(getYear()), Integer.parseInt(getMonth()) - 1, Integer.parseInt(getDay()), Integer.parseInt(getHour()), Integer.parseInt(getMinute()), Integer.parseInt(getSec())); calendar.add(Calendar.MINUTE, timeNum); return new SimpleDateFormat(DATETIME).format(calendar.getTime()); } /** * 计算两个时间间隔(精确到分钟) * * @param startDay * 开始日(整型):0表示当日,1表示明日 * @param startTime * 开始时间(24h):00:00 * @param endDay * 结束日(整型):0表示当日,1表示明日,限制:大于等于 startDay * @param endTime * 结束时间(24h):23:50 * @return 格式化的日期格式:DD天HH小时mm分 */ public static String calculateIntervalTime(int startDay, String startTime, int endDay, String endTime) { int day = endDay - startDay; int hour = 0; int mm = 0; if (day < 0) { return null; } else { int sh = Integer.valueOf(startTime.split(":")[0]); int eh = Integer.valueOf(endTime.split(":")[0]); int sm = Integer.valueOf(startTime.split(":")[1]); int em = Integer.valueOf(endTime.split(":")[1]); hour = eh - sh; if (hour > 0) { mm = em - sm; if (mm < 0) { hour--; mm = 60 + mm; } } else { day = day - 1; hour = 24 + hour; mm = em - sm; if (mm < 0) { hour--; mm = 60 + mm; } } } if (hour == 24) { day++; hour = 0; } if (day != 0) { return day + "天" + hour + "小时" + mm + "分"; } else { return hour + "小时" + mm + "分"; } } /** * 计算两个时间差 * * @param startTime * @param endTime * @return long * @throws ParseException */ public static long calculateIntervalTime(String startTime, String endTime) throws ParseException { return parseDateTime(endTime).getTime() - parseDateTime(startTime).getTime(); } // 字符串转换成时间 public static Date parseDateTime(String datetime) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat(DATETIME); return sdf.parse(datetime); } // 获取当前详细日期时间 public static String getDateTime() { return new SimpleDateFormat(DATETIME).format(new Date()); } // 转换为中文时间 public static String getChineseDateTime() { return new SimpleDateFormat(DATETIMECHINESE).format(new Date()); } // 转换为中文时间 public static String getChineseDate() { return new SimpleDateFormat(DATECHINESE).format(new Date()); } // 转换为中文时间 public static String getSimpleChineseDate() { return new SimpleDateFormat(SIMPLEDATECHINESE).format(new Date()); } // 转换为中文时间 如果num为-1表示前一天 1为后一天 0为当天 public static String getSimpleChineseDate(int num) { Date d = new Date(); try { d = parseDateTime(crateTimeFromNowTimeByDay(num)); } catch (ParseException e) { e.printStackTrace(); } return new SimpleDateFormat(SIMPLEDATECHINESE).format(d); } // 获取当前时间 public static String getTime() { return new SimpleDateFormat(TIME).format(new Date()); } // 获取当前年 public static String getYear() { return new SimpleDateFormat(YEAR).format(new Date()); } // 获取当前月 public static String getMonth() { return new SimpleDateFormat(MONTH).format(new Date()); } // 获取当前日 public static String getDay() { return new SimpleDateFormat(DAY).format(new Date()); } // 获取当前时 public static String getHour() { return new SimpleDateFormat(HOUR).format(new Date()); } // 获取当前分 public static String getMinute() { return new SimpleDateFormat(MINUTE).format(new Date()); } // 获取当前秒 public static String getSec() { return new SimpleDateFormat(SEC).format(new Date()); } // 获取昨天日期 public static String getYestday() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -1); Date d = cal.getTime(); return new SimpleDateFormat(DATETIME).format(d);// 获取昨天日期 } public static String getMonday() { Calendar calendar = new GregorianCalendar(); // 取得本周一 calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0); calendar.setFirstDayOfWeek(Calendar.MONDAY); calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); return new SimpleDateFormat(DATETIME).format(calendar.getTime());// 获取昨天日期 }}
阅读全文
0 0
- java时间工具类
- java 时间工具类
- Java时间工具类
- Java时间工具类
- 时间工具类--java
- Java时间工具类
- java 时间工具类
- java 时间类 工具
- Java时间工具类
- 时间工具类java
- Java时间工具类
- JAVA 时间工具类
- #.java 时间工具类
- java 时间工具类
- [Java]时间工具类
- JAVA时间处理工具类
- java时间处理工具类
- java日期时间工具类
- pyspider介绍
- Java学习【web基础-JSP1-JSP中的各种元素】
- 虚拟币开发专题(什么是POS,市面上的POS有哪些)
- NorFlash和NandFlash区别
- cocoos打包环境配置
- java 时间工具类
- linux和windows下的“回车符”和“换行符”
- .NET Core 之 MSBuild 介绍
- Mysql建立索引
- 集合的交 并 补运算
- Android View源码解读:浅谈DecorView与ViewRootImpl
- 修改SDE表空间大小
- 如何使用 HTTP 响应头字段来提高 Web 安全性?
- HttpClient post 和get 带参数请求