- /*
- *java中对日期的加减操作
- *gc.add(1,-1)表示年份减一.
- *gc.add(2,-1)表示月份减一.
- *gc.add(3.-1)表示周减一.
- *gc.add(5,-1)表示天减一.
- *以此类推应该可以精确的毫秒吧.没有再试.大家可以试试.
- *GregorianCalendar类的add(int field,int amount)方法表示年月日加减.
- *field参数表示年,月.日等.
- *amount参数表示要加减的数量.
- *
- * UseDate.java 测试如下:
- */
- import java.util.Calendar;
- import java.util.Date;
- import java.util.GregorianCalendar;
- import java.util.Locale;
- import java.text.ParseException;
- import java.text.ParsePosition;
- import java.text.SimpleDateFormat;
- public class UserDate {
- /***对时间进行加减运算****/
- Date d=new Date();
- GregorianCalendar gc =new GregorianCalendar();
- SimpleDateFormat sf =new SimpleDateFormat("yyyy-MM-dd"); //日期格式化
- //当前时间
- public String getLocalDate()
- {
- return sf.format(d);
- }
- //年份
- public String getYears()
- {
- gc.setTime(d);
- gc.add(1,+1);
- gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));
- return sf.format(gc.getTime());
- }
- //月份
- public String getHalfYear()
- {
- gc.setTime(d);
- gc.add(2,+6);
- gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));
- return sf.format(gc.getTime());
- }
- //月份
- public String getQuarters()
- {
- gc.setTime(d);
- gc.add(2,+3);
- gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE));
- return sf.format(gc.getTime());
- }
- //天数
- public String getDate(){
- gc.setTime(d);
- gc.add(5, +11);
- gc.set(gc.get(Calendar.YEAR), gc.get(Calendar.MONTH), gc.get(Calendar.DATE));
- return sf.format(gc.getTime());
- }
- //对时间进行格式化
- public String getSimpleDateFormat(){
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
- String time = sdf.format(new Date());
- return time;
- }
- //时间加减运算的结果
- public int day(){//s1小s2大
- String s1 = "2011-09-10";
- String s2 = "2011-09-19";
- int day=0;
- try{
- SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd");
- ParsePosition pos = new ParsePosition(0);
- ParsePosition pos1 = new ParsePosition(0);
- Date dt1=formatter.parse(s2,pos);
- Date dt2=formatter.parse(s1,pos1);
- long l = dt1.getTime() - dt2.getTime();
- day=(int)(l/(3600*24*1000));
- }catch(Exception e){
- System.out.println("exception"+e.toString());
- }
- return day;
- }
- public String StringToDateTime(){
- String myString = "Tue Oct 18 04:11:56 CST 2005 ";
- String s = null;
- try {
- SimpleDateFormat sdf = new SimpleDateFormat( "EEE MMM dd HH:mm:ss zzz yyyy ", Locale.US);
- Date d = sdf.parse(myString);
- Calendar c = Calendar.getInstance();
- c.setTime(d);
- s = new SimpleDateFormat( "yyyy-MM-dd ").format(c.getTime());
- System.out.println(s);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return s;
- }
- //String类型时间转为Date类型时间
- public String StringToDateTime2(){
- String time = "2011-09-19";
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
- Date timetoString = null;
- try {
- timetoString = sdf.parse(time);
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- System.out.println("转化后的Date类型:"+timetoString);
- String s = sdf.format(timetoString);
- return s;
- }
- public static void main(String[] args)
- {
- UserDate ud= new UserDate();
- System.out.println("时间格式化:"+ud.getSimpleDateFormat());
- System.out.println("当前时间:"+ud.getLocalDate());
- System.out.println("年份加一:"+ud.getYears());
- System.out.println("月份加六:"+ud.getHalfYear());
- System.out.println("月份加三:"+ud.getQuarters());
- System.out.println("天数加十一:"+ud.getDate());
- System.out.println("对时间进行加减运算的结果:"+ud.day());
- System.out.println("String类型时间转换为Date类型时间:"+ud.StringToDateTime());
- System.out.println("格式化后的时间:"+ud.StringToDateTime2());
- }
- }