• Java常用类(二)


    目录

    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 对象 表示的毫秒数)
    1. import org.junit.Test;
    2. import java.util.Date;
    3. public class DateTimeTest {
    4. @Test
    5. public void test1(){
    6. //构造器一:util下的Date():创建一个对应当前时间的Date对象
    7. Date date1 = new Date();
    8. System.out.println(date1.toString());
    9. System.out.println(date1.getTime());
    10. //构造器二:util下的Date():创建指定时间的Date对象
    11. Date date2 = new Date(1669275759155L);
    12. System.out.println(date2.toString());
    13. }
    14. }

    运行结果:

     java.sql.Date类

    java.sql.Date类对应着数据库中的日期变量类型

    涉及两个问题:

    • 1、如何实例化sql.Date对象
    • 2、util.Date和sql.Date对象如何相互转换
    1. package com.light.java;
    2. import org.junit.Test;
    3. import java.util.Date;
    4. /**
    5. * @auther light
    6. * @Description JDK8之前的日期时间API
    7. * @create 2022-11-24 15:35
    8. */
    9. public class DateTimeTest {
    10. /**
    11. * |---java.sql.Date类
    12. * java.sql.Date:对应这数据库中的日期类型变量
    13. * >如何实例化
    14. * >sql.Date--->util.Date(直接赋值:多态)
    15. *
    16. * >如何将java.util.Date对象转换为java.sql.Date对象:
    17. *
    18. */
    19. @Test
    20. public void test1(){
    21. System.out.println("\n**********************sqlDate**************************");
    22. //创建SQL类中的Date对象
    23. java.sql.Date date3 = new java.sql.Date(1669276192545L);
    24. System.out.println(date3.toString());//只输出年月日
    25. System.out.println("\n**********************sql.Date--->util.Date(直接赋值:多态)**************************");
    26. Date date4 = new Date();
    27. date4=date3;
    28. System.out.println(date4.toString());
    29. System.out.println("\n**********************将java.util.Date对象转换为java.sql.Date对象**************************");
    30. //从父类-->子类
    31. Date date5=new Date();
    32. java.sql.Date date6=new java.sql.Date(date5.getTime());//利用getTime()方法获取util.Date和sql.Date中共有的部分
    33. System.out.println(date6.toString());
    34. }
    35. }

    运行结果

     java.text.SimpleDateFormat类

    Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat 类是一个不与语言环境有关的方式来格式化和解析日期的具体类。

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

    • SimpleDateFormat():默认模式的语言环境创建对象(默认构造器)
    • SimpleDateFormat(String pattern):该构造器可以用参数pattern指定的的格式创建一个对象,该对象调用:
      • public String format(Date date):方法格式化时间对象

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

    • public Date parse(String source):从给定字符串的开始解析文本,以生成一个日期

    1. import org.junit.Test;
    2. import java.text.ParseException;
    3. import java.text.SimpleDateFormat;
    4. import java.util.Date;
    5. /**
    6. * @auther light
    7. * @Description JDK 8之前的日期时间的API测试
    8. * SimpleDateFormat
    9. *
    10. * @create 2022-11-25 19:32
    11. */
    12. public class DateTimeTest {
    13. /**
    14. * SimpleDateFormat的使用:SimpleDateFormat是对日期Date类的格式化和解析
    15. *
    16. * 1、两个操作:格式化和解析
    17. * 格式化:日期----->字符串
    18. * 解析:格式化的逆过程:字符串---->日期
    19. *
    20. * 2、SimpleDateFormat的实例化
    21. *
    22. */
    23. @Test
    24. public void test1() throws ParseException {
    25. //实例化SimpleDateFormat:使用默认构造器
    26. SimpleDateFormat sdf = new SimpleDateFormat();
    27. //格式化日期 java.util.Date
    28. Date date = new Date();
    29. System.out.println(date);
    30. String format = sdf.format(date);
    31. System.out.println(format);
    32. //解析:格式化的逆过程:字符串--->日期
    33. String str="22-11-25 下午7:42";
    34. Date parse = sdf.parse(str);
    35. System.out.println(parse);
    36. System.out.println("************按指定的方式格式化和解析:带参数的构造器*******************");
    37. SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    38. //格式化
    39. String format1 = sdf1.format(date);
    40. System.out.println(format1);//2022-11-25 08:40:43
    41. //解析:要求字符串必须是SimpleDateFormat识别的格式(通过构造器参数体现)
    42. Date parse1 = sdf1.parse("2022-11-25 08:36:46");
    43. System.out.println(parse1);
    44. }
    45. }

    运行结果:

     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 
    1. import org.junit.Test;
    2. import java.util.Calendar;
    3. import java.util.Date;
    4. import java.util.GregorianCalendar;
    5. public class DateTimeTest {
    6. /**
    7. * 日历类(抽象类)的使用
    8. */
    9. @Test
    10. public void testCalender(){
    11. //一、实例化
    12. //方式一:创建子类GregorianCalendar的构造器
    13. GregorianCalendar g=new GregorianCalendar();
    14. //set
    15. g.set(2022,11,28);
    16. System.out.println(g.getTime());
    17. //方式二:调用其静态方法getInstance()
    18. Calendar calender = Calendar.getInstance();
    19. //二、常用方法
    20. //get()
    21. int i = calender.get(Calendar.DAY_OF_MONTH);
    22. System.out.println(i);
    23. //set()
    24. calender.set(Calendar.DAY_OF_MONTH,27);
    25. int i1 = calender.get(Calendar.DAY_OF_MONTH);
    26. System.out.println(i1);
    27. //add()
    28. calender.add(Calendar.DAY_OF_MONTH,-1);
    29. int i2 = calender.get(Calendar.DAY_OF_MONTH);
    30. System.out.println(i2);
    31. //getTime():将Calender类转换为Date类
    32. Date date = calender.getTime();
    33. System.out.println(date);
    34. //setTime():将Date类转换为Calender类
    35. Date date1 = new Date();
    36. calender.setTime(date1);
    37. int i3 = calender.get(Calendar.DAY_OF_MONTH);
    38. System.out.println(i3);
    39. }
    40. }

    运行结果

  • 相关阅读:
    webpack面试题
    SCT44160Q国产、车规 3.4-40V 160-mΩ四通道智能高位开关 P2P替代TPS4H160
    2024年最新版本Stable diffusion 4.7+ComfyUI升级版终于来了!(一键安装包,直接收藏)
    每天五分钟机器学习:数据和特征决定机器学习的上限(特征工程)
    算法练习-牛牛的快递(思路+流程图+代码)
    C语言入门Day_20 函数的定义
    Vue单文件组件
    CSDN竞赛第一期
    薛定谔的猫重出江湖?法国初创公司Alice&Bob研发猫态量子比特
    JetLinks设备接入的认识与理解【woodwhales.cn】
  • 原文地址:https://blog.csdn.net/zssxcj/article/details/128075106