Java日期和时间(一)

发布时间:2023年12月30日

传统的日期和时间

Date

  • 代表的是日期和时间
构造器说明
public Date()创建一个Date对象,代表的是系统当前此刻日期时间
public Date(long time)把时间毫秒值转换成Date日期对象
import java.util.Date;

public class Test {
    public static void main(String[] args){
        // 目标:掌握Date日期类的使用
        // 创建一个Date的对象,代表系统当前时间信息
        Date d = new Date();
        System.out.println(d);

        // 拿到时间毫秒值
        long time = d.getTime();
        System.out.println(time);

        // 把时间毫秒值转换成日期对象,2s之后时间是多少
        time += 2 * 1000;
        Date d2 = new Date(time);
        System.out.println(d2);

        // 直接把日期对象的时间通过setTime方法进行修改
        Date d3 = new Date();
        d3.setTime(time);
        System.out.println(d3);
    }
}

?

SimpleDateFormat

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

?

例子?

? ? ? ? 给定的日期和时间是 2001-07-04? 12:05:56

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

public class Test {
    public static void main(String[] args){
        // 目标:掌握SimpleDateFormat的使用
        Date d = new Date();
        System.out.println(d);

        long time = d.getTime();
        System.out.println(time);

        // 格式化日期对象和时间、毫秒值
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");

        String rs = sdf.format(d);
        String rs2 = sdf.format(time);
        System.out.println(rs);
        System.out.println(rs2);
    }
}

时间格式的常见符号:?

?

?

?SimpleDateFormat解析字符串时间成为日期对象

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

public class Test {
    public static void main(String[] args) throws ParseException {
        // 目标:掌握SimpleDateFormat解析字符串时间成为日期对象
        String dateStr = "2022-12-12 12:12:11";
        
        // 创建简单日期格式化对象,指定的时间格式必须与被解析的时间格式一模一样,否则出现会出bug
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d = sdf.parse(dateStr);
        System.out.println(d);
    }
}

案例练习

?

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

public class Test {
    public static void main(String[] args) throws ParseException {
        // 目标:掌握SimpleDateFormat解析字符串时间成为日期对象
        String start = "2023年11月11日 0:0:0";
        String end = "2023年11月11日 0:10:0";
        String xj = "2023年11月11日 0:1:18";
        String xp = "2023年11月11日 0:10:57";

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 H:m:s");
        Date startDt = sdf.parse(start);
        Date endDt = sdf.parse(end);
        Date xjDt = sdf.parse(xj);
        Date xpDt = sdf.parse(xp);

        long startTime = startDt.getTime();
        long endTime = endDt.getTime();
        long xjTime = xjDt.getTime();
        long xpTime = xpDt.getTime();

        if (xjTime >= startTime && xjTime <= endTime){
            System.out.println("小贾您秒杀成功");
        }else {
            System.out.println("小贾您秒杀失败");
        }
        if (xpTime >= startTime && xpTime <= endTime){
            System.out.println("小皮您秒杀成功");
        }else {
            System.out.println("小皮您秒杀失败");
        }
    }
}

Calendar

  • 代表的是系统此刻时间对应的日历。
  • 通过它可以单独获取、修改时间中的年、月、日、时、分、秒等。

Calendar日历类的常见方法

import java.util.Calendar;
import java.util.Date;

public class Test {
    public static void main(String[] args){
        // 目标:掌握Calendar的使用和特点
        // 得到系统此刻时间对应的日历对象
        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 d = now.getTime();
        System.out.println(d);

        //拿到时间毫秒值
        long time = now.getTimeInMillis();
        System.out.println(time);

        // 修改日历中的某个信息
        now.set(Calendar.MONTH,9);
        now.set(Calendar.DAY_OF_YEAR,125);
        System.out.println(now);

        // 为某个信息增加或者减少多少
        now.add(Calendar.DAY_OF_YEAR,100);
        now.add(Calendar.DAY_OF_YEAR,-10);
        now.add(Calendar.DAY_OF_MONTH,6);
        now.add(Calendar.HOUR,12);
        System.out.println(now);
    }
}

文章来源:https://blog.csdn.net/SU_mu147/article/details/135304307
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。