目录
System类提供public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。(时间戳)
计算世界时间的主要标准有:
表示特定的瞬间,精确到毫秒
- 构造器一:util下的Date():创建一个对应当前时间的Date对象
- 构造器二:util下的Date(long date):创建一个指定时间的Date对象
- 方法一:toString():把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准)
- 方法二:getTime():获取当前Date对象所对应的毫秒数(时间戳:自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象 表示的毫秒数)
- import org.junit.Test;
-
- import java.util.Date;
- public class DateTimeTest {
- @Test
- public void test1(){
-
- //构造器一:util下的Date():创建一个对应当前时间的Date对象
- Date date1 = new Date();
- System.out.println(date1.toString());
- System.out.println(date1.getTime());
-
- //构造器二:util下的Date():创建指定时间的Date对象
- Date date2 = new Date(1669275759155L);
- System.out.println(date2.toString());
- }
- }
运行结果:
java.sql.Date类对应着数据库中的日期变量类型
- 1、如何实例化sql.Date对象
- 2、util.Date和sql.Date对象如何相互转换
- package com.light.java;
-
- import org.junit.Test;
-
- import java.util.Date;
-
- /**
- * @auther light
- * @Description JDK8之前的日期时间API
- * @create 2022-11-24 15:35
- */
- public class DateTimeTest {
- /**
- * |---java.sql.Date类
- * java.sql.Date:对应这数据库中的日期类型变量
- * >如何实例化
- * >sql.Date--->util.Date(直接赋值:多态)
- *
- * >如何将java.util.Date对象转换为java.sql.Date对象:
- *
- */
- @Test
- public void test1(){
-
- System.out.println("\n**********************sqlDate**************************");
- //创建SQL类中的Date对象
- java.sql.Date date3 = new java.sql.Date(1669276192545L);
- System.out.println(date3.toString());//只输出年月日
- System.out.println("\n**********************sql.Date--->util.Date(直接赋值:多态)**************************");
- Date date4 = new Date();
- date4=date3;
- System.out.println(date4.toString());
-
-
- System.out.println("\n**********************将java.util.Date对象转换为java.sql.Date对象**************************");
- //从父类-->子类
- Date date5=new Date();
- java.sql.Date date6=new java.sql.Date(date5.getTime());//利用getTime()方法获取util.Date和sql.Date中共有的部分
- System.out.println(date6.toString());
-
- }
- }
运行结果
Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat 类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
- SimpleDateFormat():默认模式的语言环境创建对象(默认构造器)
- SimpleDateFormat(String pattern):该构造器可以用参数pattern指定的的格式创建一个对象,该对象调用:
- public String format(Date date):方法格式化时间对象
- public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期
- import org.junit.Test;
-
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
-
- /**
- * @auther light
- * @Description JDK 8之前的日期时间的API测试
- * SimpleDateFormat
- *
- * @create 2022-11-25 19:32
- */
- public class DateTimeTest {
- /**
- * SimpleDateFormat的使用:SimpleDateFormat是对日期Date类的格式化和解析
- *
- * 1、两个操作:格式化和解析
- * 格式化:日期----->字符串
- * 解析:格式化的逆过程:字符串---->日期
- *
- * 2、SimpleDateFormat的实例化
- *
- */
- @Test
- public void test1() throws ParseException {
- //实例化SimpleDateFormat:使用默认构造器
- SimpleDateFormat sdf = new SimpleDateFormat();
-
- //格式化日期 java.util.Date
- Date date = new Date();
- System.out.println(date);
- String format = sdf.format(date);
- System.out.println(format);
-
- //解析:格式化的逆过程:字符串--->日期
- String str="22-11-25 下午7:42";
- Date parse = sdf.parse(str);
- System.out.println(parse);
-
-
- System.out.println("************按指定的方式格式化和解析:带参数的构造器*******************");
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
- //格式化
- String format1 = sdf1.format(date);
- System.out.println(format1);//2022-11-25 08:40:43
- //解析:要求字符串必须是SimpleDateFormat识别的格式(通过构造器参数体现)
- Date parse1 = sdf1.parse("2022-11-25 08:36:46");
- System.out.println(parse1);
-
-
- }
-
-
-
- }
运行结果:
Calendar是一个抽象基类(不能被实例化),主用用于完成日期字段之间相互操作的功能。
- 一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、 MINUTE、SECOND
- public void set(int field,int value)//该方法没有返回值,直接在原有字符串上进行修改
- public void add(int field,int amount)//该方法没有返回值,直接在原有字符串上进行修改
- public final Date getTime()
- public final void setTime(Date date)
注意:
- import org.junit.Test;
-
-
- import java.util.Calendar;
- import java.util.Date;
- import java.util.GregorianCalendar;
-
- public class DateTimeTest {
- /**
- * 日历类(抽象类)的使用
- */
- @Test
- public void testCalender(){
- //一、实例化
- //方式一:创建子类GregorianCalendar的构造器
- GregorianCalendar g=new GregorianCalendar();
- //set
- g.set(2022,11,28);
- System.out.println(g.getTime());
- //方式二:调用其静态方法getInstance()
- Calendar calender = Calendar.getInstance();
-
- //二、常用方法
- //get()
-
- int i = calender.get(Calendar.DAY_OF_MONTH);
- System.out.println(i);
- //set()
- calender.set(Calendar.DAY_OF_MONTH,27);
- int i1 = calender.get(Calendar.DAY_OF_MONTH);
- System.out.println(i1);
-
- //add()
- calender.add(Calendar.DAY_OF_MONTH,-1);
- int i2 = calender.get(Calendar.DAY_OF_MONTH);
- System.out.println(i2);
-
- //getTime():将Calender类转换为Date类
- Date date = calender.getTime();
- System.out.println(date);
-
-
- //setTime():将Date类转换为Calender类
- Date date1 = new Date();
- calender.setTime(date1);
- int i3 = calender.get(Calendar.DAY_OF_MONTH);
- System.out.println(i3);
-
- }
- }
运行结果