Java学习_Day16

日期API
1.Java.util.Date
构造器:
new Date() 获取当前系统时间
new Date(Long time) 设置时间
方法:
date.getTime() 获取1970-1-1凌晨距离date的毫秒数
System.currentTimeMillis() 时间搓
Date与String类型的相互转换
工具:SimpleDateFormat
构造器:
SimpleDateFormat() 默认格式21-5-15 上午9:26
SimpleDateFormat(String pattern)自己设置格式
” yyyy年MM月dd日 HH:mm:ss“
方法:
Date—>String
String format(Date date)
String—>Date
Date parse(String)


/**
 * 第一代日期
 */
public class Test1 {
    public static void main(String[] args) throws ParseException {
        Date date = new Date();//获取当前时间
        System.out.println(date);
        long l = System.currentTimeMillis();
        System.out.println("+"+l);//获取时间搓
        long time = date.getTime();
        System.out.println("="+time);

        Date date1 = new Date(l);
        System.out.println(date1);
/**
 * date---->String
 * 通过format方法
 */
        SimpleDateFormat sim = new SimpleDateFormat();//date-->string  默认格式
        String format = sim.format(l);//时间搓
        System.out.println(format);
        String format1 = sim.format(date);//当前时间
        System.out.println(format1);

        //自己设置输出时间格式 一个字母代替一个数字 y年M月d天  h(12小时制)H(24小时制)m分s秒
        SimpleDateFormat sim2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format2 = sim2.format(l);
        System.out.println(format2);
        String format3 = sim2.format(date);
        System.out.println(format3);
/**
 * string--->date
 * 通过parse(方法)
 */
        SimpleDateFormat sim3 = new SimpleDateFormat();
        Date parse = sim3.parse(format1);
        System.out.println(parse);


    }
}

	2.日历类(abstract类型)
			获取日历类对象(通过方法获得对象)
			Calendar.getInstance();
			
			方法:
					 System.out.println(c.get(Calendar.YEAR));
                    System.out.println(c.get(Calendar.MONTH));
                    System.out.println(c.get(Calendar.DAY_OF_MONTH));
                    System.out.println(c.get(Calendar.HOUR_OF_DAY));
                    System.out.println(c.get(Calendar.MINUTE));
                    System.out.println(c.get(Calendar.SECOND));
            		   
            		    set(int field,int value)
                	    c.set(Calendar.SECOND,30);
            		    set(int year,int month,int day,int hour...)

/**
 * 第二代日期
 * Calendar
 */
public class Test1 {
    public static void main(String[] args) {
         Calendar c = Calendar.getInstance();  // abstract抽象方法 ,不能实例化对象,只能调用方法实现对象
        System.out.println(c);
        //Calendar因为是抽象方法 所以它把值都设置为静态常量

        //下面连个方法相同
        System.out.println(c.get(1));
        System.out.println(c.get(Calendar.YEAR));//Calendar.YEAR==1 也可以直接输入1

        //赋值
        c.set(1,2019);
        System.out.println(c.get(1));
    }
}

3.jdk1.8新特性
		LocalDate、LocalTime、LocalDateTime //时分秒;年月日;全部时间
		①日期对象的创建( final 修饰的  不能被继承)
			       LocalDate、LocalTime、LocalDateTime.now()
                LocalDate、LocalTime、LocalDateTime.of(xxx,xxx,xxx...)
          方法:
                System.out.println(date.getYear());
                System.out.println(date.getMonthValue());
                System.out.println(date.getDayOfMonth());
                System.out.println(date.getHour());
                System.out.println(date.getMinute());
                System.out.println(date.getSecond());

             修改:
                    plusXXX(int)   增加
                    minusXXX(int)  减少
                注意:修改完成后不会对原对象产生影响,返回新的结果
        
        String  和  JDK1.8日期的转换
            工具类:DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
             LocalDateTime/LocalDate/LocalTime-->String
                String format(LocalDateTime/LocalDate/LocalTime)
             String-->LocalDateTime/LocalDate/LocalTime
                LocalDateTime/LocalDate/LocalTime.parse(String str,DateTimeFormatter dtf)

/**
 * 第三代时间  1.8新特性
 * LocalDate、LocalTime、LocalDateTime
 */
public class Test1 {
    public static void main(String[] args) {
        //创建对象
        LocalDateTime now = LocalDateTime.now(); //所有时间
        LocalDate now1 = LocalDate.now();//年月日--->也只能调用对应的方法
        LocalTime now2 = LocalTime.now();//时分秒
        //方法:
        System.out.println(now.getYear());
        System.out.println(now.getDayOfYear());//今天距离年初相差多少天
        System.out.println(now.getHour());
        //.....

        //修改时间  plus-->加多少年  对原对象没有影响
        LocalDateTime localDateTime = now.plusYears(3);
        System.out.println(localDateTime);
        LocalDateTime localDateTime1 = now.plusMonths(1);
        System.out.println(localDateTime1);
        //minus 减少
        LocalDateTime localDateTime2 = localDateTime.minusYears(3);
        System.out.println(localDateTime2);

        //工具类  DateTimeFormatter
        //LocalDateTime/LocalDate/LocalTime-->String
        DateTimeFormatter date = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
//        DateTimeFormatter date = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        String format = date.format(now);
//        String format = date.format(now1);
        System.out.println(format);

//        String-->LocalDateTime/LocalDate/LocalTime
        LocalDateTime parse = localDateTime.parse(format,date);
        System.out.println(parse);


    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值