时间工具类java
来源:互联网 发布:智睿高清网络电视下载 编辑:程序博客网 时间:2024/05/21 20:22
时间工具类
package com.newyulong.bcp.utils;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Locale;import org.apache.commons.lang.StringUtils;public class DateUtil {/** * 日期格式化字符串->全数字表示yyyyMMddHHmmss */public static final String TIME_FORMAT_DIGITAL = "yyyyMMddHHmmss";/** * 日期格式化字符串->全数字表示yyyyMMdd */public static final String TIME_FORMAT_DAY_1 = "yyyyMMdd";/** * 日期格式化字符串->HH:mm */public static final String TIME_FORMAT_HOUR = "yyyyMMddHHmmss";/** * 日期格式化字符串 到秒yyyy-MM-dd HH:mm:ss */public static final String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";/** * 日期格式化字符串 到天yyyy-MM-dd */public static final String TIME_FORMAT_DAY = "yyyy-MM-dd";/** * 日期格式化字符串 到毫秒yyyy-MM-dd HH:mm:ss.SSS */public static final String TIME_FORMAT_MSEL = "yyyy-MM-dd HH:mm:ss.SSS";/** * oracle中日期格式化字符串yyyy-mm-dd hh24:mi:ss */public static final String TIME_FORMAT_ORACLE = "yyyy-mm-dd hh24:mi:ss";/** * oracle中日期格式化字符串HH:mm */public static final String TIME_FORMAT_HHMM = "HH:mm";/** * oracle中日期格式化字符串HH:mm */public static final String TIME_FORMAT_HOUR_ONLY = "yyyy-MM-dd HH";/** * 日期格式化字符串 到月yyyy-MM */public static final String TIME_FORMAT_MONTH = "yyyy-MM";public static final String TIME_FORMAT_MONTH_MM_DD = "yyyy/MM/dd";/** * 返回系统时间 * * @return long * @author:lipeng * @date:2012-12-6 */public static long getcurrentTime(){return System.currentTimeMillis();}/** * 获取服务器当前日期 * @return */public static Date getCurrentDate() {return new Date(System.currentTimeMillis());}/** * 获取服务器当前时间的字符串 ,格式 :yyyy-MM-dd HH:mm:ss * @return */public static String getCurrentDateStr(){return convertDateToStr(getCurrentDate(), TIME_FORMAT);}/** * 获取当前时间到指定hour时间的字符串 * @param hour指定hour,-1指前一小时,+1指后一小时 * @return String * @author:lipeng * @date:2013-3-7 */public static String getCurrentToHour(int hour,String format){Calendar calendar = Calendar.getInstance();calendar.add(Calendar.HOUR, hour); // 得到提前hour小时Date oneHourBefore = calendar.getTime();return convertDateToStr(oneHourBefore,format);}/** * 得到当天的23:59:59秒的指定格式的字符串值 * * @param format * @return String * @author:lipeng * @date:2013-1-16 */public static String getCurrentLastesStr(String format){Calendar cal = Calendar.getInstance();cal.setTime(getCurrentDate());SimpleDateFormat sdf = new SimpleDateFormat(format);convertDateToStr(getCurrentDate(), format);cal.set(Calendar.HOUR_OF_DAY, 23);cal.set(Calendar.MINUTE, 59);cal.set(Calendar.SECOND, 59);return sdf.format(cal.getTime());}/** * 获取指定日期的23:59:59秒的指定格式的date * * @param date * @param format * @return String * @author:lipeng * @date:2013-1-16 */public static Date getCurrentLastesStr(Date date){Calendar cal = Calendar.getInstance();cal.setTime(date);cal.set(Calendar.HOUR_OF_DAY, 23);cal.set(Calendar.MINUTE, 59);cal.set(Calendar.SECOND, 59);return cal.getTime();}/** * 获取指定天数的2013-01-01 23:59:59秒的指定格式的date */public static String getLastesDayStr(int date){Calendar cal = Calendar.getInstance();cal.add(Calendar.DAY_OF_MONTH, date);cal.set(Calendar.HOUR_OF_DAY, 23);cal.set(Calendar.MINUTE, 59);cal.set(Calendar.SECOND, 59);// 获取昨天的时间return convertDateToStr(cal.getTime(),TIME_FORMAT);}/** * 获取当天的零点的日期,00:00:01 * * @return Date * @author:lipeng * @date:2013-1-16 */public static String getCurrentFirstStr(String format){SimpleDateFormat sdf = new SimpleDateFormat(format);Calendar cal = Calendar.getInstance();cal.set(Calendar.HOUR_OF_DAY, 0);cal.set(Calendar.MINUTE, 0);cal.set(Calendar.SECOND, 1);cal.add(Calendar.DAY_OF_MONTH, 0);return sdf.format(cal.getTime());}/** * 获取服务器当前时间的字符串 ,格式:指定 * * @param format * @return String * @author:lipeng * @date:2013-1-6 */public static String getCurrentDateStr(String format){return convertDateToStr(getCurrentDate(), format);}/** * 增加天数 * @param date * @param days * @return */public static Date addDate(Date date, int days) {if (date == null) return date;Locale loc = Locale.getDefault();GregorianCalendar cal = new GregorianCalendar(loc);cal.setTime(date);int day = cal.get(Calendar.DAY_OF_MONTH);int month = cal.get(Calendar.MONTH);int year = cal.get(Calendar.YEAR);cal.set(year, month, day + days);return cal.getTime();}/** * 增加天/小时/分钟/秒 * * @param date时间 * @param days天 * @param hours小时 * @param mins分钟 * @param second秒 * @return Date * @author:lipeng * @date:Dec 26, 2013 */public static Date addDate(Date date, int days,int hours,int mins,int second) {if (date == null) return date;Calendar cal = Calendar.getInstance();cal.setTime(date);cal.add(Calendar.DAY_OF_MONTH, days);cal.add(Calendar.HOUR, hours);cal.add(Calendar.MINUTE, mins);cal.add(Calendar.SECOND, second);return cal.getTime();}/** * 增加天/小时/分钟/秒 * * @param date时间 * @param days天 * @param hours小时 * @param mins分钟 * @param second秒 * @return Date * @author:lipeng * @date:Dec 26, 2013 */public static Date addDate(String date, int days,int hours,int mins,int second) {if(StringUtils.isBlank(date)){throw new IllegalArgumentException("DateUtil.addDate()方法非法参数值:" + date);}Calendar cal = Calendar.getInstance();cal.setTime(convertStrToDate(date,TIME_FORMAT));cal.add(Calendar.DAY_OF_MONTH, days);cal.add(Calendar.HOUR, hours);cal.add(Calendar.MINUTE, mins);cal.add(Calendar.SECOND, second);return cal.getTime();}/** * 获取前几天或后几天的日期 * * @param days * @return Date * @author:lipeng * @date:2013-1-16 */public static Date addDate(int days){Calendar cal = Calendar.getInstance();cal.add(Calendar.DAY_OF_MONTH, days);return cal.getTime();}/** * 获取前一天所处的周的星期一 * * @return Date 几天前或后的时间 * @author:lipeng * @date:2013-3-12 */public static Date getWeekStar(int day){Calendar cal = new GregorianCalendar(); cal.add(Calendar.DAY_OF_WEEK, day);cal.setFirstDayOfWeek(Calendar.MONDAY); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); return cal.getTime();}/** * 获取前一天所处的周的星期天 * * @param day 几天前或后的时间 * @return Date * @author:lipeng * @date:2013-3-12 */public static Date getWeekEnd(int day){Calendar cal = new GregorianCalendar(); cal.add(Calendar.DAY_OF_WEEK, day);cal.setFirstDayOfWeek(Calendar.MONDAY); cal.set(Calendar.HOUR_OF_DAY, 23); cal.set(Calendar.MINUTE, 59); cal.set(Calendar.SECOND, 59); cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); return cal.getTime();}/** * 获取指定日期所处的周的星期一 * * @return Date * @author:lipeng * @date:2013-3-12 */public static Date getWeekStar(int year,int month,int date){Calendar cal = new GregorianCalendar(); cal.set(year, month, date);cal.setFirstDayOfWeek(Calendar.MONDAY); cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); return cal.getTime();}/** * 获取指定日期所处的周的星期天 * * @param day * @return Date * @author:lipeng * @date:2013-3-12 */public static Date getWeekEnd(int year,int month,int date){Calendar cal = new GregorianCalendar(); cal.set(year, month, date);cal.setFirstDayOfWeek(Calendar.MONDAY); cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); return cal.getTime();}/** * 获取前一天所处的月头 * * @param day * @return Date * @author:lipeng * @date:2013-3-12 */public static Date getMonthStar(int month){Calendar cal = new GregorianCalendar(); cal.add(Calendar.MONTH, month);cal.set(Calendar.DAY_OF_MONTH, 1); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); return cal.getTime();}/** * 获取前一天所处的月尾 * * @param day * @return Date * @author:lipeng * @date:2013-3-12 */public static Date getMonthEnd(int month){Calendar cal = new GregorianCalendar(); cal.add(Calendar.MONTH, 1 + month);cal.set(Calendar.DAY_OF_MONTH, 0); cal.set(Calendar.HOUR_OF_DAY, 23); cal.set(Calendar.MINUTE, 59); cal.set(Calendar.SECOND, 59); return cal.getTime();}/** * 将字符串转换为日期格式 * @param dateStr * @param dateFormat * @return */public static Date convertStrToDate(String dateStr, String dateFormat) {if (dateStr == null || dateStr.equals("")) {return null;}SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);try {return sdf.parse(dateStr);}catch (Exception e) {throw new RuntimeException("DateUtil.convertStrToDate():" + e.getMessage());}}/** * 将日期转换为字符串格式 * @param date * @param dateFormat * @return */public static String convertDateToStr(Date date, String dateFormat) {if (date == null) {return null;}SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);return sdf.format(date);}/** * 给一日期增加一时间 * @param timePart HH,mm,ss * @param number 要增加的时间 * @param date 日期对象 * @return */public static Date addTime(String timePart, int number, Date date) {Calendar cal = Calendar.getInstance();cal.setTime(date);if (timePart.equals("HH")) {cal.add(Calendar.HOUR, number);}else if (timePart.equals("mm")) {cal.add(Calendar.MINUTE, number);}else if (timePart.equals("ss")) {cal.add(Calendar.SECOND, number);}else {throw new IllegalArgumentException("DateUtil.addDate()方法非法参数值:" + timePart);}return cal.getTime();}/** * * 清除指定的时间 * @param date * @param timePart HH,mm,ss * @return */public static Date clearTime(Date date,String timePart){Calendar cal = Calendar.getInstance();cal.setTime(date);if (timePart.equals("HH")) {cal.clear(Calendar.HOUR);}else if (timePart.equals("mm")) {cal.clear(Calendar.MINUTE);}else if (timePart.equals("ss")) {cal.clear(Calendar.SECOND);}else {throw new IllegalArgumentException("DateUtil.addDate()方法非法参数值:" + timePart);}return cal.getTime();}/** * 计算间隔时间 * * @param currTime * @param lastestTime * @return String * @author:lipeng * @date:2013-4-27 */public static String getTimeSpace(String currTime,String lastestTime){Long d = convertStrToDate(currTime, TIME_FORMAT).getTime();Long d2 = convertStrToDate(lastestTime, TIME_FORMAT).getTime();return String.valueOf((d - d2)/1000);}/** * 比较时间大小 * * @param a时间字符串 * @param b时间字符串 * @param timeFormat时间字符串格式 * @return inta > b 返回'-1',a = b 返回'0',a < b返回'1' * @author:lipeng * @date:Mar 27, 2014 */public static int compareTo(String a,String b,String timeFormat){long c = DateUtil.convertStrToDate(a, timeFormat).getTime();long d = DateUtil.convertStrToDate(b, timeFormat).getTime();if(c > d){return -1;}else if(c == d){return 0;}else{return 1;}}/** * 计算当前月的第一天 * * @return String * @author: * @date:2013-4-27 */public static String getBeginTime(){SimpleDateFormat datef=new SimpleDateFormat(TIME_FORMAT);Calendar cal = Calendar.getInstance(); //当前月的第一天 cal.set(GregorianCalendar.DAY_OF_MONTH, 1); Date beginTime=cal.getTime(); return datef.format(beginTime);}/** * 计算当前月的最后一天 * * @return String * @author: * @date:2013-4-27 */public static String getEndTime(){Calendar cal = Calendar.getInstance(); SimpleDateFormat datef=new SimpleDateFormat(TIME_FORMAT); //当前月的最后一天 cal.set( Calendar.DATE, 1 ); cal.roll(Calendar.DATE, - 1 ); Date endTime=cal.getTime(); return datef.format(endTime);}/** * 计算某年某月的最后一天 * * @return String * @author: * @date:2013-4-27 */ public static String getLastDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month-1); cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DATE)); return new SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime()); } /** * 计算某年某月的第一天 * * @return String * @author: * @date:2013-4-27 */ public static String getFirstDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month-1); cal.set(Calendar.DAY_OF_MONTH,cal.getMinimum(Calendar.DATE)); return new SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime()); } /** * 判断输入是否为合法的日期格式 * * @return String * @author: * @date:2013-4-27 */ public static boolean isDate(String str, String dateFormat) { if (str != null) { java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(dateFormat); formatter.setLenient(false); try { formatter.format(formatter.parse(str)); }catch (Exception e) { return false; } return true; } return false; } /** * 获取百度网站的北京时间 * * @return * @author:Administrator * @date:2014年7月8日 */ public static long getTime() { long time = 0; String urls = "http://open.baidu.com/special/time/"; try { URL url = new URL(urls); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.connect(); InputStream is = con.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line; int index = 0; while ((line = br.readLine()) != null) { index++; if (index < 123) continue; if (line.indexOf("window.baidu_time(") != -1) { String[] s = line.split("\\("); time = Long.parseLong(s[1].substring(0, s[1].length() - 2)); break; } } con.disconnect(); } catch (Exception e) { e.printStackTrace(); } return time; } /** * 获取某一日期前几月和后几月 * * @param date * @param amount * @return * @author:zhengjk * @date:2014-12-4 */ public static Date addMonth(Date date, int amount){ Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.MONTH, amount); return c.getTime(); } public static String getCurrentMouth() { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd 00:00:00"); Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 String date = format.format(c.getTime()); return date; } /** * 获取某一日期前几月和后几月 * * @param date * @param amount * @return * @author:lipeng * @date:2015年1月26日 */ public static String cutMonth(Date date, int amount,String dateFormat){ return convertDateToStr(addMonth(date, amount),dateFormat); } public static String timeStamp2Date(String timestampString, String formats){ Long timestamp = Long.parseLong(timestampString)*1000; String date = new java.text.SimpleDateFormat(formats).format(new java.util.Date(timestamp)); return date; } public static void main(String[] args){////上周一 Wed Jul 29 2015 15:25:23 GMT 0800//System.out.println(DateUtil.convertDateToStr(getWeekStar(-3), TIME_FORMAT));////上周日//System.out.println(DateUtil.convertDateToStr(getWeekEnd(-3), TIME_FORMAT));// // 3.当前月的第一天 // System.out.println("当前月的第一天:" + convertDateToStr(getMonthStar(35),TIME_FORMAT)); // // 4.当前月的最后一天 // System.out.println("当前月的最后一天:" + convertDateToStr(getMonthEnd(35),TIME_FORMAT)); // System.out.println("获取前2天的时间:" + getLastesDayStr(-2));// System.out.println(24*60*60*1000);//System.out.println(convertDateToStr(new Date(1437619600), TIME_FORMAT));//System.out.println(convertDateToStr(new Date(1437724064), TIME_FORMAT));System.out.println(timeStamp2Date("1437558729",TIME_FORMAT));/*Date d = convertStrToDate("2013-04-17 00:00:01", TIME_FORMAT);System.out.println(d.getTime());Date d2 = convertStrToDate("Wed Jul 29 2015 15:25:23 GMT+08:00", TIME_FORMAT);System.out.println(d2.getTime());*///System.out.println(d.getTime());//List<String> list = new ArrayList();//for (int i = 1; i < 5000; i++) {//list.add(convertDateToStr(new Date(1366190471000L - i*38*1000), TIME_FORMAT));//}//for (int i = 1; i < 8; i++) {//Date d = convertStrToDate("2013-06-" + i, TIME_FORMAT_DAY);//System.out.println((d.getTime() ));//}//System.out.println(getcurrentTime());//String time = DateUtil.convertDateToStr(DateUtil.addDate(-2),DateUtil.TIME_FORMAT_DAY);//System.out.println(time);//System.out.println(convertDateToStr(getWeekStar(2013,4,3),TIME_FORMAT_DAY));//System.out.println(convertDateToStr(getWeekEnd(2013,5,3),TIME_FORMAT_DAY));//System.out.println(convertDateToStr(getMonthStar(0),TIME_FORMAT_DAY));//System.out.println(getTimeSpace("2014-03-05 12:05:00","2014-03-05 12:01:00"));//System.out.println(getCurrentLastesStr(DateUtil.TIME_FORMAT));//System.out.println(convertDateToStr(new Date(1404787254578L),TIME_FORMAT));//System.out.println(convertDateToStr(addMonth(new Date(),2), "yyyyMM"));//System.out.println(convertDateToStr(addMonth(new Date(), -5),TIME_FORMAT_MONTH));//System.out.println(cutMonth(convertStrToDate("2015-03-18 16:56:00", DateUtil.TIME_FORMAT), -6,DateUtil.TIME_FORMAT));}}
0 0
- java时间工具类
- java 时间工具类
- Java时间工具类
- Java时间工具类
- 时间工具类--java
- Java时间工具类
- java 时间工具类
- java 时间类 工具
- Java时间工具类
- 时间工具类java
- Java时间工具类
- JAVA 时间工具类
- #.java 时间工具类
- java 时间工具类
- [Java]时间工具类
- JAVA时间处理工具类
- java时间处理工具类
- java日期时间工具类
- 第三章html上机练习4
- 第三章
- 使用border做三角形
- 8大排序算法图文讲解
- Java集合---ArrayList的实现原理
- 时间工具类java
- \0
- 关于U盘还原安装Mac系统
- 基于python的gensim word2vec训练词向量
- Linux串口大致过程
- 数据结构之线性表
- UIDatePicker
- Spring Boot——开发新一代Spring Java应用
- Java集合---LinkedList源码解析