????????????????? ?????????????????
?????????? SimpleDateFormat ???????????????????????????????????
?????????
????SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
????// ?????
????String sDate = sdf.format(new Date());
????System.out.println(sDate);
????// ?????????????
????String str = "2016-05-24 12:20:12";
????try {
????Date date = sdf.parse(str);
????System.out.println(sdf.format(date));
????} catch (ParseException e) {
????e.printStackTrace();
????}
??????????

???????? ??????? ??С??
?????????? Calendar ??? getTimeInMillis ??????
?????????
????SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
????String str = "2016-05-23 12:20:12";
????try {
????// ?????????????
????Date date = sdf.parse(str);
????Calendar oldCal = Calendar.getInstance();
????// ????????
????oldCal.setTime(date);
????// ??????????
????Calendar curCal = Calendar.getInstance();
????long val = curCal.getTimeInMillis() - oldCal.getTimeInMillis();
????// ??? ?????
????System.out.println(val/(1000 * 60 * 60 * 24) + " ???");
????// ??? ??С??
????System.out.println(val/(1000 * 60 * 60) + " С??");
????} catch (ParseException e) {
????e.printStackTrace();
????}
??????????

?????????????? ??С???(???????)??????
?????????? Calendar ??? add ??????
????SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
????String str = "2016-05-23 12:20:12";
????// ??????????
????Calendar curCal = Calendar.getInstance();
????// ??????????
????System.out.println("???????: " + sdf.format(curCal.getTime()));
????// ???ò???? 2С????????
????curCal.add(Calendar.HOUR_OF_DAY?? 2);
????System.out.println("2С???: " + sdf.format(curCal.getTime()));
????// ???ò???? 1????????
????curCal.add(Calendar.DAY_OF_MONTH?? 1);
????System.out.println("1???: " + sdf.format(curCal.getTime()));
????// ???ò???? 2С????????
????curCal.add(Calendar.HOUR_OF_DAY?? -2);
????System.out.println("2С??: " + sdf.format(curCal.getTime()));
??????????