Java常用类(日期类,Calendar、Date、LocalDateTime)-10

Date

package com.edu.date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo01 {
    public static void main(String[] args) {
        //获取当前时间
        Date d1 = new Date();
        System.out.println(d1); //外国格式
        //创建SimpleDateFormat,可以指定格式,看jdk文档指定格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
        String format = sdf.format(d1);
        System.out.println(format);

        //字符串转日期
        String s = "2023年12月09日 10:31:33 星期六";
        try {
            Date parse = sdf.parse(s);
            System.out.println(sdf.format(parse));
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }


    }
}
练习:两个时间差
package com.edu.date;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Demo02 {
    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
        try {
            Date d1 = sdf.parse("2004年01月05日 13:31:40");
            Date d2 = sdf.parse("2004年01月02日 13:30:40");
            long diff =d1.getTime()-d2.getTime();
            long days = diff/(1000*60*60*24);
            long hours = (diff-days*(1000*60*60*24))/(1000*60*60);
            long minues = (diff-days*(1000*60*60*24)-hours*(1000*60*60))/(1000*60);
            System.out.println("结果:\t"+days+"天"+hours+"小时"+minues+"分");
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        //获取当前日期前半个小时的时间和后半个小时的时间
        Date now = new Date();
        System.out.println("当前时间:"+sdf.format(now.getTime()));

        Calendar nowTime = Calendar.getInstance();
        nowTime.add(Calendar.MINUTE,30);
        Calendar nowTime2 = Calendar.getInstance();
        nowTime2.add(Calendar.MINUTE,-30);
        System.out.println("30分钟后时间:"+sdf.format(nowTime.getTime()));
        System.out.println("30分钟前时间:"+sdf.format(nowTime2.getTime()));

        //指定时间的10分钟之后
        Calendar nowTime3 = Calendar.getInstance();
        try {
            nowTime3.setTime(sdf.parse("2020年06月11日 12:00:00"));
            nowTime3.add(Calendar.MINUTE,-10);
            System.out.println("10分钟之后:"+sdf.format(nowTime3.getTime()));
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }

    }
}

Calendar

package com.edu.date;

import java.util.Calendar;

public class Demo03 {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        System.out.println(c);
        //获取日历对象的某个字段,自由组合字段输出
        //如果小时要换成24小时进制的话 ==>Calendar.Hour ---> Calendar.Hour_Or_Day
        System.out.println("年:"+c.get(Calendar.YEAR));
        System.out.println("月:"+(c.get(Calendar.MONTH)+1));//老外喜欢从0开始
        System.out.println("日:"+c.get(Calendar.DAY_OF_MONTH));



    }
}

 第三代日期类

package com.edu.date;

import java.sql.Date;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Demo04 {
    public static void main(String[] args) {
        //1、使用now() 返回表示当前时间的对象
        LocalDateTime nowTime = LocalDateTime.now();//LocalDate.now(),LocalTime.now()
        System.out.println(nowTime);
        System.out.println("年"+nowTime.getYear());
        System.out.println("月"+nowTime.getMonth());
        System.out.println("月"+nowTime.getMonthValue());
        System.out.println(nowTime.getDayOfYear());
        //2、格式化
        DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy年MM月dd日 hh:mm:ss");
        String format = dateFormat.format(nowTime);
        System.out.println(format);
        //3、时间戳
        //1 通过now()获取当前时间戳对象
        Instant now =Instant.now();
        //2 通过from将Instant转换为Date
       // Date date = (Date) Date.from(now);
        //3 转回时间戳
       // Instant instant = date.toInstant();
        //对时间进行加或者减
        LocalDateTime nowTime1 = nowTime.plusDays(890);
        System.out.println(dateFormat.format(nowTime1));
    }

}
package com.edu.date;

import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Demo06 {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        LocalDateTime end = LocalDateTime.of(2023,12,12,22,8,11);
        Duration dur = Duration.between(now,end);
        System.out.println(dur.toDays());
        DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); //hh为12小时,HH为24小时
        String dateFormat = format.format(end);
        System.out.println(dateFormat);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值