Java常用类(二)
创始人
2024-02-24 14:39:52
0

目录

JDK8之前的日期时间API

java.lang.System类

java.util.Date类

两个构造器的使用

两个方法的使用

 java.sql.Date类

涉及两个问题:

 java.text.SimpleDateFormat类

格式化:日期--->字符串

解析:字符串--->日期(格式化的逆过程)

 java.util.Calendar(日历)类

获取Calendar实例的方法

Calandar类的常用方法


JDK8之前的日期时间API

java.lang.System类

System类提供public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。(时间戳)

计算世界时间的主要标准有:

  • UTC(Coordinated Universal Time)//世界协调时间
  • GMT(Greenwich Mean Time)//格林威治标准时间
  • CST(Central Standard Time)
    • CST可以代表如下 4 个不同的时区://CST可以同时表示美国,澳大利亚,中国,古巴四个国家的标准时间 
      • Central Standard Time (USA) UT-6:00 
      • Central Standard Time (Australia) UT+9:30 
      • China Standard Time UT+8:00 
      • Cuba Standard Time UT-4:00 

java.util.Date类

表示特定的瞬间,精确到毫秒

两个构造器的使用

  • 构造器一: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 {@Testpublic 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类

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对象:**/@Testpublic 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());}
}

运行结果

 java.text.SimpleDateFormat类

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的实例化**/@Testpublic void test1() throws ParseException {//实例化SimpleDateFormat:使用默认构造器SimpleDateFormat sdf = new SimpleDateFormat();//格式化日期 java.util.DateDate 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);}}

运行结果:

 java.util.Calendar(日历)类

Calendar是一个抽象基类(不能被实例化),主用用于完成日期字段之间相互操作的功能。

获取Calendar实例的方法

  •  使用其静态方法getInstance()
  •  创建Calendar的子类(GregorianCalendar)的构造器。

Calandar类的常用方法

  • 一个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)

注意:

  • 获取月份时:一月是0,二月是1,以此类推,12月是11
  • 获取星期时:周日是1,周二是2 , 以此类推,周六是7 
 import org.junit.Test;import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;public class DateTimeTest {
/*** 日历类(抽象类)的使用*/@Testpublic void testCalender(){//一、实例化//方式一:创建子类GregorianCalendar的构造器GregorianCalendar g=new GregorianCalendar();//setg.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);}
}

运行结果

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...