常用API(二)JDK8之前传统的日期、时间

本文详细介绍了Java中的Date类,如何创建、获取时间和格式化,以及SimpleDateFormat用于日期字符串的处理和Calender类用于单独操作年月日和时间的实例。还展示了在秒杀场景中如何判断时间点的比较。
摘要由CSDN通过智能技术生成

Date

*代表的是日期和时间

构造器说明
public Date()创建一个Date对象,代表的是系统当前此刻日期时间
public Date(long time)把时间毫秒值转换成Date日期对象
常见方法说明
public long getTime()返回时间从1970年1月1日  走到此刻的总的毫秒数
public void setTime(long time)设置日期对象的时间为当前时间对应的毫秒值对应的时间
import java.util.Date;

public class Test1 {
    public static void main(String[] args) {
        //目标:掌握Date日期类的使用
        //创建一个当前日期的对象,代表系统当前日期信息的
        Date a =new Date();
        System.out.println(a);
        //拿到时间毫秒值
        long time=a.getTime();
        System.out.println(time);
        time+=2*1000;
        Date b=new Date(time);
        System.out.println(b);
        Date c=new Date();
        c.setTime(time);
        System.out.println(c);
    }
}

SimpleDateFormate

代表简单日期格式化,可以用来把日期对象,时间毫秒值格式化成我们想要的的形式。

常见构造器说明
public SimpleDateFormate(String pattern)创建简单的日期化对象,并封装时间的格式
格式化时间的方法说明
public final  String formate (Date date)将日期格式化日期/时间字符串
public final String formate (Object time)将时间毫秒值格式化日期/时间字符串
解析方法说明
public Date parse(String  source)把字符串时间解析成日期对象
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String[] args) throws ParseException {
        //目标:掌握SimpleDateFormate的使用
        //1、准备一些时间
        Date a=new Date();
        System.out.println(a);
        //获取时间毫秒值
        long time =a.getTime();
        System.out.println(time);
        //格式化日期对象,时间,毫秒值
        //H:小时,m:分钟,s:秒,EEE:星期几,a:代表上午还是下午
     SimpleDateFormat sbw= new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss EEE a");
     String m=sbw.format(a);
     String n=sbw.format(time);
        System.out.println(m);
        System.out.println(n);
        //目标:掌握SimpleDateFormate解析字符串对象成为对象时间
        String ds="2024-03-02 14:22:22";
        //创建简单的日期格式化对象,指定的时间格式一定与被解析的时间格式一模一样,否则会出现bug
        SimpleDateFormat dsw=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date dsws=dsw.parse(ds);
        System.out.println(dsws);
    }
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MiaoShaHuoDong {
    public static void main(String[] args) throws ParseException {
        //目标:完成秒杀案例
        //1、把开始时间,结束时间,小皮下单时间,小贾下单时间拿到程序中来
        String start = "2023年11月11日 00:00:00";
        String end = "2023年11月11日 0:10:0";
        String xip = "2023年11月11日 0:1:18";
        String xija = "2023年11月11日 0:10:57";
        //2、把字符串时间解析成日期对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date startdt =sdf.parse(start);
        Date enddt = sdf.parse(end);
        Date xipdt = sdf.parse(xip);
        Date xijadt = sdf.parse(xija);
        //3、开始判断小皮和小贾是否秒杀成功了
        //把日期对象转换成时间毫秒值来判断
        long st=startdt.getTime();
        long et=enddt.getTime();
        long pt=xipdt.getTime();
        long gt=xijadt.getTime();
        if (st<=pt&&pt<=et) {
            System.out.println("小皮秒杀成功");
        }else{
            System.out.println("小皮秒杀失败");
        }
        if (st<=gt&&gt<=et) {
            System.out.println("小贾秒杀成功");
        }else{
            System.out.println("小贾秒杀失败");
        }
    }
}

Calender

*代表的是系统此刻时间对应的日历

*通过它可以单独获取、修改时间中的年月日,时分秒等。

Calender日历类的常见方法

方法名说明
public static Calender  getInstance()获取当前日历对象
public int get (int field)获取日历中的某个信息
public  final Date getTime()获取日期对象
public long getTimeInMillis()获取时间毫秒值
public void set (int field,int value)修改日历的某个信息
public void add(int field,int amount)为某个信息增加或减少某个指定的值
import java.util.Calendar;
import java.util.Date;

public class Test1 {
    public static void main(String[] args) {
        //掌握Calender的使用和特点
        //1、得到系统此刻时间对应的日历对象
        Calendar now=Calendar.getInstance();
        System.out.println(now);
        //获取日历中的某个信息
       int year=now.get(Calendar.YEAR);
        System.out.println(year);
        int days=now.get(Calendar.DAY_OF_YEAR);
        System.out.println(days);
        //获取日期对象
        Date a=now.getTime();
        System.out.println(a);
        //拿到时间毫秒值
        long b=now.getTimeInMillis();
        System.out.println(b);
        //修改日历中的某个信息
        now.set(Calendar.MONTH,9);//修改月份成为十月份,月份是从0开始的
        System.out.println(now);


        //为某个信息增加或是减少多少
        now.add(Calendar.DAY_OF_YEAR,125);
        System.out.println(now);
        now.add(Calendar.DAY_OF_YEAR,-12);
        System.out.println(now);

    }
}

注意:Calender是可变对象,一旦修改,对象本身表示的时间将发生变化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值