Java日期工具类一
2014-08-23 17:23
399 查看
public class DateTimeUtil { /** * Timestamp 转换成String * @param time 要转换的Timestamp 时间 * @param format 要转换成的格式 * @return 转换失败返回 空字符串 */ public static String timestampToString(Timestamp time,String format) { SimpleDateFormat formatter = new SimpleDateFormat(format); String dateString = formatter.format(time); return dateString; } /** * 字符串转换成timestamp * @param dateTime 要转换的时间字符串 * @return 转换失败返回 null * @throws ParseException */ public static Timestamp stringToTimestamp(String dateTime,String format) throws ParseException { SimpleDateFormat df1 = new SimpleDateFormat(format); Date date11 = df1.parse(dateTime); Timestamp ts =new Timestamp(date11.getTime()); return ts; } /** * 字符串转换成timestamp * @param dateTime 要转换的时间字符串 * @return 转换失败返回 null * @throws ParseException */ public static Timestamp stringToTimestamp(String dateTime) throws ParseException { SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date11 = df1.parse(dateTime); // String time = df1.format(date11); Timestamp ts = new Timestamp(date11.getTime()); return ts; } /** * 计算两个日期的时间差精确到秒 * @param time1 最晚的时间 * @param time2 最早的时间 * @return 返回相差的时间字符串 */ public static String getTimeDifference(Date time1,Date time2) { try { SimpleDateFormat timeformat = new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss"); long t1 = 0L; long t2 = 0L; t1 = timeformat.parse(getDateNumberFormat(time1)).getTime(); t2= timeformat.parse(getDateNumberFormat(time2)).getTime(); //因为t1-t2得到的是毫秒级,所以要除3600000得出小时.算天数或秒同理 int hours=(int) ((t1 - t2)/3600000); int minutes=(int) (((t1 - t2)/1000-hours*3600)/60); int seconds= (int) (((t1 - t2)/1000-hours*3600)); int day= hours/24; int month=day/30; int year=month/12; if(year<0){ year=0; } if(month<0){ month=0; } if(day<0){ day=0; } if(hours<0){ hours=0; } if(minutes<0){ minutes=0; } if(seconds<0){ seconds=0; } String ret="0秒前"; if(year>0) { ret=dateToString(time2,"yyyy-MM-dd"); } else if(month>0) { ret=dateToString(time2,"yyyy-MM-dd"); } else if(day>0) { if(day>7) { ret=dateToString(time2,"yyyy-MM-dd"); } else { ret =day+"天前"; } } else if(hours>0) { ret=hours+"小时前"; } else if(minutes>0) { ret =minutes+"分钟前"; } else if(seconds>0) { ret =seconds+"秒前"; } return ret; } catch (Exception ex) { return "0秒前"; } } /** * 计算两个日期的时间差精确到秒 * @param time1 最晚的时间 * @param time2 最早的时间 * @return 返回相差的秒数 */ public static int getTimeDifferenceSeconds(Timestamp time1, Timestamp time2) throws Exception{ SimpleDateFormat timeformat = new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss"); long t1 = 0L; long t2 = 0L; t1 = timeformat.parse(getTimeStampNumberFormat(time1)).getTime(); t2 = timeformat.parse(getTimeStampNumberFormat(time2)).getTime(); Long diff =t1 - t2; //两时间差,精确到毫秒 int num=(int)(diff/1000); return num; } /** * 格式化时间 * Locale是设置语言敏感操作 * @param formatTime * @return */ private static String getTimeStampNumberFormat(Timestamp formatTime) { SimpleDateFormat m_format = new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss", new Locale("zh", "cn")); return m_format.format(formatTime); } /** * 格式化时间 * Locale是设置语言敏感操作 * @param formatTime * @return */ private static String getDateNumberFormat(Date formatTime) { SimpleDateFormat m_format = new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss", new Locale("zh", "cn")); return m_format.format(formatTime); } /** * 获取当前时间 默认格式为 "yyyy-MM-dd HH:mm:ss" * @return 返回格式化后的当前时间 */ public static String getCurrentTime() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(new Date()); } /** * 获取当前时间 * @param format 时间格式 * @return 如果格式有错误,返回空字符串 */ public static String getCurrentTime(String format) { SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(new Date()); } /** * 字符串格式转换成date格式 * @param time 要转换的时间 * @param format 要转换成的时间格式 * @return 转换失败返回null */ public static Date stringToDate(String time,String format) { if(format==null || format.length()==0) { format="yyyy-MM-dd HH:mm:ss"; } SimpleDateFormat formatter = new SimpleDateFormat(format); ParsePosition pos = new ParsePosition(0); Date strtodate = formatter.parse(time, pos); return strtodate; } /** * date格式转换成字符串格式 * @param time 要转换的时间 * @param format 要转换成的时间格式 * @return 转换失败返回空字符串 */ public static String dateToString(Date time,String format) { try { SimpleDateFormat formatter = new SimpleDateFormat(format); String dateString = formatter.format(time); return dateString; } catch (Exception ex) { return ""; } } /** * 计算某年某周到开始日期 * @param year * @param week * @return * @throws ParseException */ public static String getYearWeekFirstDay(int year,int week)throws ParseException { Calendar cal=Calendar.getInstance(); cal.set(Calendar.YEAR,year); cal.set(Calendar.WEEK_OF_YEAR,week); cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);//周一第一天 //分别取得当前的日期的年月日 String tempYear=Integer.toString(year); String tempMonth=Integer.toString(cal.get(Calendar.MONTH)+1); String tempDay=Integer.toString(cal.get(Calendar.DATE)); if(week==1&&tempMonth.equals("12")) { //第一周,并且月是12月,开始日期应该为上一年 tempYear=Integer.toString(year-1); } String date=tempYear+"-"+tempMonth+"-"+tempDay; return formatDateTime(date,"yyyy-MM-dd"); } public static String getYearWeekEndDay(int year,int week)throws ParseException { Calendar cal=Calendar.getInstance(); cal.set(Calendar.YEAR,year); cal.set(Calendar.WEEK_OF_YEAR,week+1); cal.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);//周日 //分别取得当前的日期的年月日 String tempYear=Integer.toString(year); String tempMonth=Integer.toString(cal.get(Calendar.MONTH)+1); String tempDay=Integer.toString(cal.get(Calendar.DATE)); String date=tempYear+"-"+tempMonth+"-"+tempDay; return formatDateTime(date,"yyyy-MM-dd"); } public static String formatDateTime(String date,String format)th 4000 rows ParseException { SimpleDateFormat sdf=new SimpleDateFormat(format); String sDate=sdf.format(sdf.parse(date)); return sDate; } public static void main(String args[]){ // System.out.println(compareCurTime()); } }
相关文章推荐
- java日期处理工具类
- java最完美日期处理工具类
- java日期工具类DateUtil-续二
- java 日期 格式 前多少天, 后多少天的获取方法,日期工具类 星期
- java日期工具类
- java 日期 格式 前多少天, 后多少天的获取方法,日期工具类 星期
- java日期格式化工具类【包含常用的日期格式化方法】
- java日期工具类DateUtil
- java字符串日期处理工具类
- java转换日期的工具类
- java最完美日期处理工具类
- Java自用日期时间工具类
- java 日期工具类
- java日期工具类DateUtil-续一
- java日期处理工具类
- java日期时间处理工具类封装
- java日期时间工具类
- java 日期处理工具类 DateUtil 2
- 关于日期时间操作工具类DateUtil(一)-----对java.util.Date 的操作.
- [转]JAVA日期经典工具类