2022-7-28 第八组曹雨 时间工具类的讲解

Java的值传递和引用传递。
本质上Java只有值传递,所有的赋值传参都是一次值的拷贝
引用数据类型拷贝的就是引用地址,基本数据类型拷贝的事情,不会传入实例

public class Ch01 {
private String name;

public Ch01 (String name){
    this.name=name;
}
public static void change(Ch01 ch01){
    ch01 = new Ch01("jjj");
}

@Override
public String toString() {
    return "Ch01{" +
            "name='" + name + '\'' +
            '}';
}


public static void main(String[] args) {
    Ch01 ch01 = new Ch01("222");
    System.out.println(ch01);
}
}

输出

Ch01{name='222'}

方法中如果没有返回值,主方法调用以后无法做出改变。
如果

   ch01 = new Ch01("jjj");
 改为:
   Ch01.name = "jjj"/Ch01.setName("jjj");

那么输出就会改编为jjj。
只要是看见了 new,就是一个新的地址。

常用API

API( Application Program Interface 应用程序接口)
JKD给我提供一些已经写好的类,我们可以直接调方法来解决问题
例如String 就是一个API接口。
我们类的方法,在宏观上都可以称为类的接口。

API文档:介绍API】=

时间戳:
//时间相关api

 涉及时区
 中国:东八区
 北京时间 格林尼治时间

时间戳::1970.1.1.000000 到此时此刻的毫秒数。
 1s = 1000ms,时间戳在全世界都是固定的,它是以格林尼治时间而定的,可以忽略时区的限制。

    public static void main(String[] args) {
            System.out.println(System.currentTimeMillis());
        }
    }

日期类:

     public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date);
    }
}


Calendar日历类:
可以看日期,时间
Calendar是一个抽象类,它不能创建对象,但是他提供了一组,对年月日,时分秒,星期等的操作函数。还可以操作不同时区的时间。

处理时间和日期时,推荐使用日历类(Calender)
创建:

    public static void main(String[] args) {
       /* Date date = new Date();
        long dateNow = System.currentTimeMillis();
        long dateAfter = System.currentTimeMillis()+7*24*60*60*1000;
        date.setTime(dateAfter);
        System.out.println(date);*/

        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.get(calendar.YEAR));
        System.out.println(Calendar.DAY_OF_MONTH);
        ……………………
    }
}

时区类:
TimeZone:表示时区的偏移量

    public class Ch07 {

    public static void main(String[] args) {
        System.out.println(TimeZone.getDefault());
        System.out.println(new Date());
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeZone(TimeZone.getTimeZone("GMT-08:00"));
        System.out.println(calendar.get(Calendar.HOUR));
    }
}

日期格式化

public class C04 {
/*日期格式化
* */
public static void main(String[] args) {
    Date date = new Date();
    System.out.println(date);


    /*yyyy年
    * yy年的后两位
    * MM月
    * dd日
    * HH小时 24小时制
    * hh 小时 12小时制
    * mm 分
    * ss 秒
    * SSS 毫秒*/
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日 hh:mm");
    //格式化日期,把Date类型转换成String类型
    String s = sdf.format(date);
    System.out.println(s);
}

写一个工具类

public final class DateUntils {
public String dataToString(Date date){
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日 hh:mm");
    return sdf.format(date);
}
public Date stringToDate(String dateStr)throws ParseException{
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日 hh:mm");
    return sdf.parse(dateStr);
}
  • 1.类要不要流口
  • 2.方法要不要加final
  • 3.一般方法不需要扩展,方法需要扩展
  • 4.工具类,方法一定要有返回值
  • 5.工具类都是静态

持续时间

返回一个新的值,原来的永远不变

public class P02 {
public static void main(String[] args) {
      Instant instant= Instant.now();
      Instant plus = instant.plus(Duration.ofMillis(5));
    System.out.println(plus);
}

}

LocaDate:获取当前日期

    public class P3 {
    public static void main(String[] args) {
        System.out.println(LocalDate.now());
      }

}

LocalDateTime:获取日期和时间

    public class Ch05 {

    public static void main(String[] args) {
    
        System.out.println(LocalDateTime.now());
    }
}

DateTimeFormatter: 处理日期的格式化问题

    public class Ch06 {

    public static void main(String[] args) {
        LocalDate now = LocalDate.now();
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");

        System.out.println(now.format(dateTimeFormatter));
    }
}

在Java1.5中加入了泛型

面试题:
String
StringBuffer
StingBuilder
三者的区别:

  • String 定义出来的是一个常量,一旦定义了就不可以改变,而StringBuffer和StringBuilder作为“可变字符串是可以改变的”
  • StringBuffer是同步处理,只能同时做一件事,效率低,但是安全性高
    而StingBuilder是异步处理,可以同时做很多件事情,效率高,相应的安全性低

posted on   figh466  阅读(25)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示