Date、SimpleDateFormat、Calendar(JDK7以前的时间类)

Date:

demo1:

package Date;

import java.util.Date;

public class demo1 {
    public static void main(String[] args) {
        //1.创建对象表示一个时间
        Date d = new Date();
        System.out.println(d);
        //2.形参是long类型,加L
        Date d1 = new Date(0L);
        System.out.println(d1);
        //3.修改时间 1000毫秒 = 1秒
        d.setTime(1000L);
        System.out.println(d);
        //4.getTime()获取当前时间毫秒值
        long time = d.getTime();
        System.out.println(time);
    }
}

demo2:

package Date;

import java.util.Date;
import java.util.Random;

public class demo2 {
    public static void main(String[] args) {
        //需求1:打印时间原点开始一年之后的时间
        Date d = new Date(365 * 24 * 60 * 60 * 1000L);
        System.out.println(d);
        System.out.println(d.getTime());
        //setTime是在原点的基础上设置的
        d.setTime(1000L);
        System.out.println(d);
        System.out.println(d.getTime());
        System.out.println("------------------------------");
        //需求2:定义任意两个Date对象,比较一下哪个时间在前,哪个时间在后
        Random r = new Random();
        int num1 = Math.abs(r.nextInt());
        Date d1 = new Date(num1);
        System.out.println(d1);
        System.out.println("------------------------------");
        int num2 = Math.abs(r.nextInt());
        Date d2 = new Date(num2);
        System.out.println(d2);
        if (d1.getTime() > d2.getTime()) {
            System.out.println(d1 + "在" + d2 + "之后");
        } else if (d1.getTime() < d2.getTime()) {
            System.out.println(d1 + "在" + d2 + "之前");
        } else {
            System.out.println(d1 + "与" + d2 + "一样");
        }
    }
}


SimpleDateFormate:

package Date;

import java.text.ParseException;
import java.util.Date;

public class SimpleDateFormat {
    public static void main(String[] args) throws ParseException {
        //format格式化,日期对象->字符串
        //利用空参构造创建SimpleDateFormat对象
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat();
        String format = sdf.format(new Date());
        System.out.println(format);
        //利用带参构造创建SimpleDateFormat对象
        java.text.SimpleDateFormat sdf1 = new java.text.SimpleDateFormat("yyyy-MM-dd HH时mm分ss秒 E");
        System.out.println(sdf1.format(new Date()));


        System.out.println("------------------------");
        //parse解析,字符串->日期对象
        //1.定义一个时间表示字符串
        String str = "2020-06-06 08:08:08 星期五";
        //2.利用空参构造创建simpleDateFormat对象
        //细节:
        //创建对象的格式要跟字符串的格式完全一致
        java.text.SimpleDateFormat sdf2 = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
        Date parse = sdf2.parse(str);
        System.out.println(parse);
        System.out.println(parse.getTime());
    }
}

demo3:

package Date;

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

public class demo3 {
    public static void main(String[] args) throws ParseException {
        //假设,你初恋的出生年月日为:2000-11-11请用字符串表示这个数据,并将其转换为:2000年11月11日
        String birthday = "2000-11-11";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date parse = sdf.parse(birthday);
        System.out.println(parse);
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日");
        String format = sdf1.format(parse);
        System.out.println(format);
    }
}

demo4:

package Date;

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

public class demo4 {
    public static void main(String[] args) throws ParseException {
        /*需求:
        秒杀活动:2023年11月11日0:0:0
        结束时间:2023年11月11日0:10:0
        小贾下单并付款的时间为:2023年11月11日0:01:00
        小皮下单并付款的时间为:2023年11月11日0:11:0
        用代码说明这两位同学有没有参加上秒杀活动?*/
        String startTime = "2023-11-11 00:00:00";
        String endTime = "2023-11-11 00:10:00";
        String xiajiaTime = "2023-11-11 00:01:00";
        String xiapiTime = "2023-11-11 00:11:00";
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date parse1 = sdf1.parse(startTime);
        Date parse2 = sdf1.parse(endTime);
        Date parse3 = sdf1.parse(xiajiaTime);
        Date parse4 = sdf1.parse(xiapiTime);
        if (parse3.getTime() >= parse1.getTime() && parse3.getTime() <= parse2.getTime()) {
            System.out.println("小贾参加");
        } else if (parse4.getTime() >= parse1.getTime() && parse4.getTime() <= parse2.getTime()) {
            System.out.println("小皮参加");
        }else{
            System.out.println("都没有参加");
        }
    }
}


Calendar

demo1:

package Calendar;

import javax.xml.crypto.Data;
import java.util.Calendar;
import java.util.Date;

public class demo1 {
    public static void main(String[] args) {
        //public static calendar getInstance()      获取当前时间的日历对象

        //细节1:Calendar是一个抽象类,不能直接new,而是通过一个静态方法获取到子类对象
        //底层原理:
        //会根据系统的不同时区来获取不同的日历对象,默认表示当前时间。
        //把会把时间中的纪元,年,月,日,时,分,秒,星期,的都放到一个数组当中
        //0  纪元
        //1   年
        //2   月
        //3  一年中的第几周
        //4  一个月中的第几周
        //5   一个月中的第几周一个月中的第几天(日期)

        //细节2:
        //月份:范围0~11 如果获取出来的是0.那么实际上是1月
        //星期:在老外的眼里,星期日是一周中的第一天
        // 1(星期日) 2(星期一) 3(星期二) 4(星期三) 5(星期四) 6(星期五) 7(星期六)
        Calendar c = Calendar.getInstance();
        //final Date getTime()                      获取日期对象
        Date d = new Date();
        c.setTime(d);
        System.out.println(c);
        //public final setTime(Date date)           给日历设置日期对象
        //public long getTimeInMillis()             拿到时间亳秒值
        //public void setTimeInMillis(long millis)  给日历设置时间亳秒值

        //public void set(int field,int value)      修改日历的某个字段信息
        c.set(Calendar.YEAR, 1999);
        c.set(Calendar.MONTH, 1);
        c.set(Calendar.DAY_OF_MONTH, 12);
        //public int get(int field)                 取日期中的某个字段信息
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;
        int day = c.get(Calendar.DAY_OF_MONTH);
        String week = getWeek(c.get(Calendar.DAY_OF_WEEK));
        System.out.println(year + "-" + month + "-" + day + " " + week);
        //public void add(int field,int amount)     为某个字段增加/减少指定的值
        c.add(Calendar.MONTH, 1);
        year = c.get(Calendar.YEAR);
        month = c.get(Calendar.MONTH) + 1;
        day = c.get(Calendar.DAY_OF_MONTH);
        week = getWeek(c.get(Calendar.DAY_OF_WEEK));
        System.out.println(year + "-" + month + "-" + day + " " + week);
    }

    //查表法:
    //表:容器
    //让数据跟索引产生对应的关系
    //传入对应的数字:1~7
    //返回对应的星期
    public static String getWeek(int index) {
        String[] arr = {"", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        return arr[index];
    }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值