SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
1.Calendar 转化 String
//获取当前时间的具体情况,如年,月,日,week,date,分,秒等
Calendar calendat = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf.format(calendar.getTime());
2.String 转化Calendar
String str="2010-5-27";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");Date date =sdf.parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
3.Date 转化String
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
String dateStr=sdf.format(new Date());
4.String 转化Date
String str="2010-5-27";SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date birthday = sdf.parse(str);
5.Date 转化Calendar
Calendar calendar = Calendar.getInstance();
calendar.setTime(new java.util.Date());
6.Calendar转化Date
Calendar calendar = Calendar.getInstance();
java.util.Date date =calendar.getTime();
7.Date 转成 String
System.out.println(sdf.format(new Date()));
8.String 转成 Timestamp
Timestamp ts = Timestamp.valueOf("2011-1-14 08:11:00");
9.Timestamp 转成 String
sdf.format(ts);
Timestamp和Date多数用法是一样的。
10.Date 转 TimeStamp
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = df.format(new Date());
Timestamp ts = Timestamp.valueOf(time);
11.日期比较大小
String ti="2010-11-25 20:11:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date time=sdf.parse(ti);String ti2="2011-11-26 20:11:00";
Date time2=sdf.parse(ti2);int c=ti2.compareTo(ti);
if(c>0){ System.out.println(ti+"大"); }else if(c==0){System.out.println("一样大");
}else{
System.out.println(ti2+"大"); }
12.Date/ Timestamp 转成 Calendar
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);calendar.add(Calendar.YEAR, 2); //日期加2年
System.out.println(calendar.getTime()); calendar.add(Calendar.DATE, -30); //日期加30天 System.out.println(calendar.getTime()); calendar.add(Calendar.MONTH, 3); //日期加3个月 System.out.println(calendar.getTime());13.将毫秒数转为String
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Timestamp scurrtest = new Timestamp(millis); String time=sdf.format(scurrtest);
public static String convert(Timestamp time) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String result = df.format((Date) time);
return result;
}
public static Timestamp getNow() {
Date date = new Date();
SimpleDateFormat simDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Timestamp now=Timestamp.valueOf(simDate.format(date));
return now;
}
public static String dateConvertToString(Date date){
SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd ");
String time = formatter.format(date);//格式化数据
return time;
}
//根据传入的日期计算距今多少天
public static Integer getValidDays(Date date){
int days=0; Date now=new Date(); int i = now.compareTo(date); if (i>0) { return 0; }else{ days = (int) Math.abs((now.getTime() - date.getTime()) / (24 * 60 * 60 * 1000)); } return days; }
public static Long getTime(){
Date dt= new Date();
Long time= dt.getTime();
return time;
}
public static Calendar convertToCalendar(String date) throws ParseException{
Date d = new SimpleDateFormat("yyyy-MM-dd").parse(date);
Calendar cal=Calendar.getInstance();
cal.setTime(d);
return cal;
}
public static void main(String[] args) throws ParseException {
Calendar now = Calendar.getInstance();
System.out.println("年: " + now.get(Calendar.YEAR));
System.out.println("月: " + (now.get(Calendar.MONTH) + 1) + "");
System.out.println("日: " + now.get(Calendar.DAY_OF_MONTH));
System.out.println("时: " + now.get(Calendar.HOUR_OF_DAY));
System.out.println("分: " + now.get(Calendar.MINUTE));
System.out.println("秒: " + now.get(Calendar.SECOND));
System.out.println("当前时间毫秒数:" + now.getTimeInMillis());
System.out.println("当前月的天数:" + now.getActualMaximum(Calendar.DATE));
System.out.println(now.getTime());
//给定日期查看最大数
now.set(Calendar.YEAR,2002);
now.set(Calendar.MONTH,6);//7月
int maxDate = now.getActualMaximum(Calendar.DATE);
Date d = new Date();
System.out.println(d);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateNowStr = sdf.format(d);
System.out.println("格式化后的日期:" + dateNowStr);
String str = "2012-1-13 17:26:33"; //要跟上面sdf定义的格式一样
Date today = sdf.parse(str);
System.out.println("字符串转成日期:" + today);
}
/** * 计算两个日期之间的天数 */ public class DateUtils { public static Integer daysBetween(Date smdate, Date bdate){ try{ SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); smdate=sdf.parse(sdf.format(smdate)); bdate=sdf.parse(sdf.format(bdate)); Calendar cal = Calendar.getInstance(); cal.setTime(smdate); long time1 = cal.getTimeInMillis(); cal.setTime(bdate); long time2 = cal.getTimeInMillis(); long between_days=(time2-time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); }catch (Exception e){ throw new RuntimeException("The Date sub error"); } }
/** * 自然年加法 * @param date * @return */ public static Date getAddDate(Date date,Integer year){ try{ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.YEAR, year); date = calendar.getTime(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = simpleDateFormat.format(date); Date parse = simpleDateFormat.parse(dateStr); return parse; }catch (Exception e){ throw new RuntimeException("The Date add error"); } } /**
*
* @param 要转换的毫秒数
* @return 该毫秒数转换为 * days * hours * minutes * seconds 后的格式
* @author fy.zhang
*/
public
static
String formatDuring(
long
mss) {
long
days = mss / (
1000
*
60
*
60
*
24
);
long
hours = (mss % (
1000
*
60
*
60
*
24
)) / (
1000
*
60
*
60
);
long
minutes = (mss % (
1000
*
60
*
60
)) / (
1000
*
60
);
long
seconds = (mss % (
1000
*
60
)) /
1000
;
return
days +
" days "
+ hours +
" hours "
+ minutes +
" minutes "
+ seconds +
" seconds "
;
}