java关于Date常用操作

版权声明:老虎的博客 https://blog.csdn.net/qq493820798/article/details/82257088

 一.Date常用方法


package JavaSE;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class DateFun {
  public static void main(String[] args){
    
     //默认当前系统时间
     Date date = new Date();
    
     //date.getTime() 获取从1970-1-1 00:00:00到这一刻的毫秒值
     //当然也有setTime()方法
     long time = date.getTime();
     System.out.println(time);
    
     /**
     *SimpleDateFormat
     *使得可以在Date与String之间相互转换
     */
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

     //format(date); 将时间转换为字符串
     String str = sdf.format(date);
     System.out.println(str);
    
     //parse(); 将字符串转换为时间
     String timeSrr = "2018-07-26 17:04:00";
     try {
       Date zhdate = sdf.parse(timeSrr);
       System.out.println(zhdate);
     } catch (ParseException e) {
       e.printStackTrace();
     }
    
    
  }
}

二.操作时间类Calendar

package JavaSE;
 
import java.util.Calendar;
import java.util.Date;
 
/**
 * 日历类
 * 用于操作时间的类
 * @author administrator
 *
 */
public class DateCalendar {
  public static void main(String[] args){
     //默认创建的Calendar表示当前系统时间
     Calendar calendar = Calendar.getInstance();
     System.out.println(calendar);
    
     /*
      * Date getTime()
      * 该方法用于获取一个Date对象,该对象表示的时间
      * 就是当前Calendar所表示的时间
      */
     Date date = calendar.getTime();
     System.out.println(date);
    
    
     /*
      * Date转换成Calendar
      * setTime();
      */
     calendar.setTime(date);
    
     /**
      * 希望表示2018-08-30 10:22:33
      */
     calendar.set(Calendar.YEAR, 2008);
    
     //月份值可以使用常量,也可以给定值,需要注意:月份从0开始
     calendar.set(Calendar.MARCH, 8-1);
    
     //Calendar.DATE 与 Calendar.DAY_OF_MONTH (相同)
     calendar.set(Calendar.DATE, 30);
     calendar.set(Calendar.HOUR_OF_DAY, 10);
     calendar.set(Calendar.MINUTE, 22);
     calendar.set(Calendar.SECOND, 33);
    
     date = calendar.getTime();
     System.out.println(date);
    
    
  }
}
 

三.获取Calendar中某个时间分量对应的值

package JavaSE;
 
import java.util.Calendar;
 
/**
 * 获取Calendar中某个时间分量对应的值
 * @author administrator
 *
 */
 
public class DateCalendar01 {
  public static void main(String[] args){
     Calendar calendar = Calendar.getInstance();
     /*
      * int get(int field);
      * 根据给定时间分量获取对应的值
      */
    
     int year = calendar.get(Calendar.YEAR);
     int month = calendar.get(Calendar.MONTH+1);
     int date = calendar.get(Calendar.DATE);
     //单独获取年,月,日
     System.out.println(year+"-"+month+"-"+date);
    
     int hourOfday = calendar.get(Calendar.HOUR_OF_DAY);
     int minute = calendar.get(Calendar.MINUTE);
     int second = calendar.get(Calendar.SECOND);
     //单独获取时,分,秒
     System.out.println(hourOfday+":"+minute+":"+second);
    
     /*
      * 注意calendar认为一周当中的第一天是星期日
      * 获取当前是星期几
      */
     int w = calendar.get(Calendar.DAY_OF_WEEK);
     System.out.println("星期:"+(w==1?7:w-1));
    
  }
}
 

四. 使用Calendar计算时间

package JavaSE;
 
import java.text.SimpleDateFormat;
import java.util.Calendar;
 
/**
 * 使用Calendar计算时间
 * @author administrator
 *
 */
public class DateCalendar02 {
  public static void main(String[] args) {
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
     /*
      * add(int field,int n)
      * 为当前calendar指定时间分量上累加给定值
      * 若传入的是负数,则是累减
      */
     Calendar calendar = Calendar.getInstance();
     calendar.add(Calendar.DAY_OF_YEAR, 15);
//   System.out.println(calendar.getTime());
     System.out.println(sdf.format(calendar.getTime()));
    
    
     /*
      * 三个月零十天后的那周的星期三是几号
      */
     Calendar cal = Calendar.getInstance();
     cal.add(Calendar.MONTH, 3);
     cal.add(Calendar.DAY_OF_YEAR, 10);
     cal.set(Calendar.DAY_OF_WEEK, 4); //1是周天,所有4是周三
//   System.out.println(cal.getTime());
     System.out.println(sdf.format(cal.getTime()));
    
    
     /*
      * 获取某个时间分量所允许的最大值
      * 获取今年最大天数
      */
     Calendar cal1 = Calendar.getInstance();
     int days = cal1.getActualMaximum(Calendar.DAY_OF_YEAR);
     System.out.println(days);
    
  }
}
 

猜你喜欢

转载自blog.csdn.net/qq493820798/article/details/82257088
今日推荐