近来的项目中经常用到了日期为时间戳的操作,大的方向上说,在大型的java项目(电商,在线办公,云平台等)中也确实需要一个能区分的id号;在小的方向上,这也是java的基础部分。简单一句话,常用故而留下痕迹来加深印象。
1.日期格式类
1.1获取规定格式日期和唯一编码:
如果你需要的是String类型的日期格式
SimpleDateFormat checktimeformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Calendar currencytime = Calendar.getInstance();
String currencydatetime = checktimeformat.format(currencytime.getTime());
String DOCID = CurDatetime + String.valueOf(Math.random()).substring(2, 6);
DOCID = DOCID.replace(":", "").replace(" ", "").replace("-", "");
如果是需要的是Date类型的格式
DateFormat checktimeformat =new SimpleDateFormat("yyyy-MM-dd");
Date date = checktimeformat .parse(szBeginTime);
SimpleDateFormat checktimeformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Calendar currencytime = Calendar.getInstance();
String currencydatetime = checktimeformat.format(currencytime.getTime());
String DOCID = CurDatetime + String.valueOf(Math.random()).substring(2, 6);
DOCID = DOCID.replace(":", "").replace(" ", "").replace("-", "");
如果是需要的是Date类型的格式
DateFormat checktimeformat =new SimpleDateFormat("yyyy-MM-dd");
Date date = checktimeformat .parse(szBeginTime);
备注:需要注意 引入的是:Java.text.DateFormat
2.日期操作类
2.1提取一个月中的最后一天
public static void main(String[] args) {
Date date = new Date();
long date_3_hm = date.getTime() - 3600000 * 34 * day;
Date date_3_hm_date = new Date(date_3_hm);
System.out.println(Date date_3_hm_date);
}
Date date = new Date();
long date_3_hm = date.getTime() - 3600000 * 34 * day;
Date date_3_hm_date = new Date(date_3_hm);
System.out.println(Date date_3_hm_date);
}
2.2提取一个星期中的最后一天
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.DATE, -7);
System.out.println(DateUtils.date2String("yyyy-MM-dd", cal.getTime()));
}
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.DATE, -7);
System.out.println(DateUtils.date2String("yyyy-MM-dd", cal.getTime()));
}
2.3单独把年月日提取出来的方法
1. int year =calendar.get(Calendar.YEAR);
2. int month=calendar.get(Calendar.MONTH)+1;
3. int day =calendar.get(Calendar.DAY_OF_MONTH);
4. int hour =calendar.get(Calendar.HOUR_OF_DAY);
5. int minute =calendar.get(Calendar.MINUTE);
6. int seconds =calendar.get(Calendar.SECOND);
2. int month=calendar.get(Calendar.MONTH)+1;
3. int day =calendar.get(Calendar.DAY_OF_MONTH);
4. int hour =calendar.get(Calendar.HOUR_OF_DAY);
5. int minute =calendar.get(Calendar.MINUTE);
6. int seconds =calendar.get(Calendar.SECOND);
2.4两个日期相隔的天数
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Date beginDate= format.parse("2007-12-24");
java.util.Date endDate= format.parse("2007-12-25");
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
System.out.println("相隔的天数="+day);
java.util.Date beginDate= format.parse("2007-12-24");
java.util.Date endDate= format.parse("2007-12-25");
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
System.out.println("相隔的天数="+day);
2.5提取一年前的日期
java.text.Format formatter=new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Date todayDate=new java.util.Date();
long beforeTime=(todayDate.getTime()/1000)-60*60*24*365;
todayDate.setTime(beforeTime*1000);
String beforeDate=formatter.format(todayDate);
System.out.println(beforeDate);
java.util.Date todayDate=new java.util.Date();
long beforeTime=(todayDate.getTime()/1000)-60*60*24*365;
todayDate.setTime(beforeTime*1000);
String beforeDate=formatter.format(todayDate);
System.out.println(beforeDate);
2.6提取某个小时后的时间
java.util.Calendar Cal=java.util.Calendar.getInstance();
Cal.setTime(dateOper);
Cal.add(java.util.Calendar.HOUR_OF_DAY,10);
System.out.println("date:"+forma.format(Cal.getTime()));
Cal.setTime(dateOper);
Cal.add(java.util.Calendar.HOUR_OF_DAY,10);
System.out.println("date:"+forma.format(Cal.getTime()));
2.7提取日期比较的方法
long difference=c2.getTimeInMillis()-c1.getTimeInMillis();
相差天数:long day=difference/(3600*24*1000)
相差小时:long hour=difference/(3600*1000)
相差分钟:long minute=difference/(60*1000)
相差秒: long second=difference/1000
相差天数:long day=difference/(3600*24*1000)
相差小时:long hour=difference/(3600*1000)
相差分钟:long minute=difference/(60*1000)
相差秒: long second=difference/1000
备注:1.月份的起始值为0而不是1,所以例如:要设置八月时,我们用7而不是8。要想明白清楚的操作日期可能不是一朝一夕能做到的事情,如果简单的在项目中应用的话是可以满足的;而想要更加清楚明白的去了解就需要深入了解这些类的父类Calendar,别的类都是基于Calendar的继承。进步就要加油,深入,提升!
之后会继续添加用到的方法,继续总结。