java常用类

常用类

根据源码学习

构造器 -> 字段 -> 方法

一、System类

java.lang.System 系统

  1. 常用方法

    currentTimeMillis():获取从1970-01-01 00:00:00到现在的毫秒数

    exit(0):退出java虚拟机 0代表正常退出,否则异常退出

    getenv(String):获取指定的环境变量

    getProperty(String):获取系统属性

    getProperties():获取所有系统属性

    arraycopy(源,源索引,目标,目标索引,长度):从源数组指定索引位置复制给定长度到目标数组的索引位置

    gc():执行垃圾回收

    //学习数组的时候,自己写过数组拷贝的代码
     public static native void arraycopy(Object src,  int  srcPos,Object dest, int destPos, int length);
    
    //查询当前系统时间
    System.currentTimeMillis();
    public static native long currentTimeMillis();
    
    //垃圾回收器
    public static void gc() {
        Runtime.getRuntime().gc();
    }
    

二、String 字符串类

2.1 简介

  • String 不是基本数据类型,是一种引用类型
  • String代表一组不可改变的Unicode字符序列。String对象一旦被初始化,不能再改变
  • String类是final修饰的终结类,不能产生子类

2.2 创建String

静态方式创建:String str = “abc”;在方法区常量池中产生唯一一个字符串对象,如果有另一个引用指向了相同的字符串,则两个引用变量的地址相同

动态方式创建:String str = new String(“abc”); 在堆内存中会产生一个不同的对象,会产生两个对象

2.3 构造方法

  • new String();
  • new String(“abc”);
  • new String(char类型数组);
  • new String( char类型数组,数组下标起始位置,取出数组的长度);
  • new String( byte数组);
  • new String( byte类型数组,数组下标起始位置,取出数组的长度);

构造器

//无参构造器
public String() {
    //做了数组初始化
    this.value = new char[0];
}
//带一个参数
public String(String original) {
    //给char 数组赋值
    this.value = original.value;
    //缓存String 的 hash 值
    this.hash = original.hash;
}
//传递 char 类型数组
public String(char value[]) {
    this.value = Arrays.copyOf(value, value.length);
}

字段

/** The value is used for character storage. */
//存储字符的数组
private final char value[];

/** Cache the hash code for the string */
//缓存 hash code
private int hash; // Default to 0

方法

//查看字符串长度
public int length() {
    return value.length;
}
//判断是否为空
public boolean isEmpty() {
    return value.length == 0;
}
//返回一个索引对应字符值
public char charAt(int index) {
    return value[index];
}
//判断是否包含一个字符
public boolean contains(CharSequence s) {
    return indexOf(s.toString()) > -1;
}
//获取byte[]
public byte[] getBytes() {
    return StringCoding.encode(value, 0, value.length);
}
//以什么开头
public boolean startsWith(String prefix) {
    return startsWith(prefix, 0);
}
//以什么结尾
public boolean endsWith(String suffix) {
    return startsWith(suffix, value.length - suffix.value.length);
}
//equals 方法
equals(Object obj)
//以什么什么断开
public String[] split(String regex) {
    return split(regex, 0);
}
//去掉空字符串 “   abc   ”
public String trim() {}

2.4 常用方法

  1. length( ) 返回int 类型的值,获取字符串长度
  2. equals( ) 判断两个字符串中的字面量值是否相等
  3. equalslgnoreCase(String) 不区分大小写比较字面量值是否相等
  4. indexOf(int)
  5. indexOf(String) 查找给定值在字符串第一次出现的下标位置,如果不存在,则返回-1
  6. indexOf(int,int)
  7. indexOf(String,int):查找给定值在字符串中给定索引位置开始,第一次出现的下标位置。如果值不存 在,则返回-1
  8. lastIndexOf(int):
  9. lastIndexOf(String):查找给定值在字符串中最后一次出现的下标位置。如果值不存在,则返回-1
  10. lastIndexOf(int,int):
  11. lastIndexOf(String,int):查找给定值在字符串中给定索引位置开始,最后一次出现的下标位置。如果值不存在,则返回-1
  12. toUpperCase():将字符串中所有字符都转换为大写
  13. toLowerCase():将字符串中所有字符都转换为小写
  14. charAt(int):返回下标引处的char值
  15. substring(int):对字符串进行截取,从指定索引位置开始,一直截取到最后
  16. substring(int,int): 对字符串进行截取,从指定开始位置,截取到结束位置(不包含结束位置)
  17. trim():将字符串前后空格去除
  18. concat(String):字符串连接 和+实现相同的功能,如果字符串是null值不能使用,并且只能传字符串参数,其他类型不可以使用
  19. getBytes():将字符串转换成byte数组
  20. toCharArray():将字符串转换成char数组
  21. contains(String):判断在字符串是否包含给定值,返回boolean类型的值
  22. startsWith(String):判断字符串是否以给定值做为开始
  23. startsWith(String,int):判断字符串从索引位置,是否以给定值做为开始
  24. endsWith(String):判断字符串是否以给定值做为结束
  25. replace(char,char):对字符串指定字符,使用新的字符进行替换
  26. replace( CharSequence, CharSequence):对字符串指定的字符序列,使用新的字符序列进行替换
  27. replaceAll(String,String):按正则表达式要求,将给定的值替换满足正则的字符串
  28. split(String):按给定的正则表达式,将字符串分隔成字符串数组
  29. maches(String):判断字符串是否可以匹配给定的正则表达式
  30. contentEquals(CharSequence)
  31. contentEquals(StringBuffer):字符串和StringBuffer或者字符序列比较内容
  32. Pattern.matcher(String,String):和字符串maches()方法执行相同结果

三、StringBuffer

内容可变的字符串类,使用StringBuffer来对字符串的内容进行动态操作,不会产生额外的现象

初始时,默认是有16个字符来作为缓冲区

使用synchronized修饰,是线程安全的

3.1 构造方法

  • new StringBuffer();
  • new StringBuffer(String)
  • new StringBuffer(int)
  • new StringBUffer(charSequence)

3.2 常用方法

  • append():在当前StringBuffer对象上,追加其他内容
  • capacity():返回当前容量
  • length():返回长度
  • setCharAt(int,char):将给定索引位置的字符设置为第二个参数给定的值
  • reverse():将StringBuffer内容反转
  • delete(int,int):删除StringBuffer从指定索引开始(包含)到结束(不包含)的字符串
  • toString():将StringBuffer转成字符串
  • insert(int,Object):在指定索引位置,插入给定值
  • replace(int,int,String):将指定的字符串替换到起始位置(包含)和结束位置(不包含)中
  • deleteCharAt(int):删除指定索引位置的字符

四、 StringBuilder(字符缓冲区)

线程是不安全的,单线程操作效率最高

  1. StringBuilder 也是final 修饰的不可以不继承
  2. 里面的 char[] 数组不是使用 final 修饰的,可以替换

构造器

//默认的数组长度为16
public StringBuilder() {
    super(16);
}
//指定容量
public StringBuilder(int capacity) {
    super(capacity);
}

方法

//做char[] 的拷贝或者拼接
@Override
public StringBuilder append(String str) {
    super.append(str);
    return this;//放回当前对象
}

//将 StringBuilder 对象转换成字符串对象
@Override
public String toString() {
    // Create a copy, don't share the array
    return new String(value, 0, count);
}

字段

/**
* The value is used for character storage.
*/
char[] value;

/**
* The count is the number of characters used.
*/
int count;

五、Math类

5.1 简介

  • 提供了大量用于数学运算的相关方法
  • 使用final修饰的终结类,不能产生子类
  • 方法都是static修饰的静态方法,可以通过类名.方法名直接调用

5.2 常用方法

  • abs(int):求绝对值(int,long,float,double做为参数)
  • ceil(double):求大于等于给定值的最小整数值,以double类型返回
  • floor(double):求小于等于给定值的最大整数值,以double类型返回
  • max(int,int):求两个数字中最大的值(int long float double做为参数)
  • min(int,int):求两个数字中最小的值(int long float double做为参数)
  • random():获取一个0到1之间的随机小数
  • round(float|double):返回int或long,采用四舍五入法,获取最接近的整数值
  • sqrt(double):获取平方根,如果传值为负数,返回NaN
  • pow(double,double):求一个数的N次方
  • sin(double)/cos(double)/tan(double):获取给定弧度值的三角函数值

六、Random类

6.1 简介

java.util下有一个Random类,根据随机算法的起源数字(种子)进行一些迭代变化,来产生随机数。

虽然Random产生的数字是随机的,但在相同种子数下的相同次数产生的随机数是相同的(伪随机)

//伪随机数验证
Random random=new Random(100);
Random random1=new Random(100);
int num=random.nextInt();
int num1=random1.nextInt();
System.out.println("num = " + num);
System.out.println("num1 = " + num1);

6.2 常用方法

nextInt():获取int类型的随机数

nextInt(int):获取0(包含)到给定值(不包含)之间的随机数

**nextlong():获取long类型的随机数 **

nextfloat():获取一个随机单精度浮点数0到1之间

nextDouble():获取一个随机双精度浮点数 0到1之间

nextBoolean(): 返回一个随机boolean类型的值,true或false,概率相同

七、BigInteger和BigDecimal

7.1 简介

  • BigInteger可以支持任意长度的整数

  • BigDecimal可以支持任意精度的浮点数

  • 用来做精确计算

7.2 创建方式

new BigInteger();

new BigInteger(参数1,进制):可以将不同进制转成10进制显示

new BigDecimal();

BigInteger.valueOf();

BigDecimal.valueOf();

Scanner对象的nextBigInteger() nextBigDecimal();

7.3 常用方法

add(): 加法

intValue():将BigInteger转成int类型值

doubleValue():将BigDecimal转成double类型值

substract():减法

multiply():乘法

divide():除法,BigInteger只保留整数。BigDecimal用法是和BigInteger完全不同

remainder():求余数

divideAndRemainder():求除法商和余数,返回的是BigInteger数组

max():求大值

min():求小值

public BigInteger add(BigInteger val) {}

public BigInteger subtract(BigInteger val) {}

public BigInteger multiply(BigInteger val) {}

public BigInteger divide(BigInteger val) {}

八、Date类

java.util.Date.表示指定的时间信息,不支持国际化

构造方法

new Date():当前系统日期和时间

new Date(long):给定日期和时间

主要方法:

after(Date):判断当前日期对象是否在给定日期对象之后

before(Date):判断当前日期对象是否在给定日期对象之前

equals(Object):判断两个日期是否相等

compareTo(Date):比较两个日期的顺序,如果当前日期对象大于给定日期对象,返回正数,如果小于给定日期对象,返回负数,如果等于给定日期对象,返回零

//构造方法 创建当前日期对象
public Date() {
    this(System.currentTimeMillis());
}

//打印符合我们本地人观看的时间日期
@Deprecated
public String toLocaleString() {
    DateFormat formatter = DateFormat.getDateTimeInstance();
    return formatter.format(this);
}

8.1 Dateformat

对日期类型进行格式化和解析

DateFormat本身是一个抽象类,实例化的方式

一种是通过静态方法的调用,处理的是长日期和长时间类型

  • getDateInstance()
  • getTimeInstance()
  • getDateTimeInstance()

一种是通过创建子类对象

创建SimpleDateFormat对象,处理的是短日期和短时间类型

8.2 可以自定义格式:

  • yyyy-MM-dd
  • yyyy-MM-dd HH:mm:ss
字母含义示例
y年份。一般用 yy 表示两位年份,yyyy 表示 4 位年份使用 yy 表示的年扮,如 11; 使用 yyyy 表示的年份,如 2011
M月份。一般用 MM 表示月份,如果使用 MMM,则会 根据语言环境显示不同语言的月份使用 MM 表示的月份,如 05; 使用 MMM 表示月份,在 Locale.CHINA 语言环境下,如“十月”;在 Locale.US 语言环境下,如 Oct
d月份中的天数。一般用 dd 表示天数使用 dd 表示的天数,如 10
D年份中的天数。表示当天是当年的第几天, 用 D 表示使用 D 表示的年份中的天数,如 295
E星期几。用 E 表示,会根据语言环境的不同, 显示不 同语言的星期几使用 E 表示星期几,在 Locale.CHINA 语 言环境下,如“星期四”;在 Locale.US 语 言环境下,如 Thu
H一天中的小时数(0~23)。一般用 HH 表示小时数使用 HH 表示的小时数,如 18
h一天中的小时数(1~12)。一般使用 hh 表示小时数使用 hh 表示的小时数,如 10 (注意 10 有 可能是 10 点,也可能是 22 点)
m分钟数。一般使用 mm 表示分钟数使用 mm 表示的分钟数,如 29
s秒数。一般使用 ss 表示秒数使用 ss 表示的秒数,如 38
S毫秒数。一般使用 SSS 表示毫秒数使用 SSS 表示的毫秒数,如 156

8.3 常用方法

把日期变成字符串

 public final String format(Date date)

把字符串变成日期

 public Date parse(String source) 

创建一个日期格式类的对象 new + 构造器(“日期格式”)

SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd”);

九、Calendar 日历类

一个抽象类

//获取实例对象
Calendar calendar=Calendar.getInstance();
/*calendar.set(2000,Calendar.MAY,12);//设置年月日
calendar.set(Calendar.HOUR_OF_DAY,9);//设置小时
//获取年份 月份 日期
int year = calendar.get(Calendar.YEAR);
System.out.println("year = " + year);
int month = calendar.get(Calendar.MONTH)+1;//0-11
System.out.println("month = " + month);
int date = calendar.get(Calendar.DATE);
System.out.println("date = " + date);
int week = calendar.get(Calendar.DAY_OF_WEEK);//一周的第几天
System.out.println("week = " + week);//从周日开始是第1天
int day = calendar.get(Calendar.DAY_OF_MONTH);//一个月的第几天
System.out.println("day = " + day);
int dy = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println("dy = " + dy);
int hour = calendar.get(Calendar.HOUR);//12小时制的
System.out.println("hour = " + hour);
int hour1=calendar.get(Calendar.HOUR_OF_DAY);//24小时制
System.out.println("hour1 = " + hour1);
int minute = calendar.get(Calendar.MINUTE);
System.out.println("minute = " + minute);
int second = calendar.get(Calendar.SECOND);
System.out.println("second = " + second);*/
//Calendar转Date
//Date time = calendar.getTime();
//System.out.println(DateUtil.getSystemDateTime(time));
//Date转成Calender
Date date= DateUtil.parse("yyyy-MM-dd HH:mm:ss","2012-01-3110:10:23");
calendar.setTime(date);
  1. 获取日历对象

    public static Calendar getInstance()
    
  2. 获取当前时间

    public final Date getTime() {
        return new Date(getTimeInMillis());
    }
    

十、GregorianCalendar

格里高利历是公历的标准名称,教皇格里高利十三世于1582年颁布。公历纪元,又称“西元”

儒略历:公元前45年1月1日起执行的一种历法。一年12个月,大小月交替,四年一闰,平年365日,闰 年366天。年平均长度365.25天。

1949年9月27日,中国政协通过,采用国际社会通用的西历和西元作业历法和纪年。

四年一闰,百年不闰,四百年一大闰

年均长度365天5小时49分12秒,按此计算方式,3000年左右误差一天。

判断闰年的方法 isLeapYear(int),返回一个boolean类型的值,1582年后,计算方式不同

十一、JDK8新增日期工具类

LocalDate:获取本地日期

LocalTime:获取本地时间

LocalDateTime:获取本地日期和时间

public class Test1 {
    public static void main(String[] args) {
        //获取当前系统日期和时间
        LocalDate date=LocalDate.now();
        System.out.println(date);
        LocalTime time=LocalTime.now();
        System.out.println(time);
        LocalDateTime dateTime=LocalDateTime.now();
        System.out.println(dateTime);
        //自定义设置系统日期和时间
        LocalDate date1=LocalDate.of(2022,9,2);
        System.out.println(date1);
        LocalTime time1=LocalTime.of(19,30,30);
        System.out.println(time1);
        LocalDateTime dateTime1=LocalDateTime.of(date1,time1);
        System.out.println(dateTime1);
        LocalDateTime dateTime2=LocalDateTime.of(2022,9,2,19,30,30);
        System.out.println(dateTime2);
    }
}

单独获取日期时间类中的每个值

public class Test2 {
    public static void main(String[] args) {
        LocalDateTime dateTime=LocalDateTime.now();
        //获取年份
        int year = dateTime.getYear();
        System.out.println("year = " + year);
        //获取月份
        Month month = dateTime.getMonth();
        System.out.println("month = " + month.getValue());
        System.out.println("month = "+dateTime.getMonthValue());
        //获取第几天
        int dayOfMonth = dateTime.getDayOfMonth();
        System.out.println("dayOfMonth = " + dayOfMonth);
        //获取星期几
        DayOfWeek dayOfWeek = dateTime.getDayOfWeek();
        System.out.println("dayOfWeek = " + dayOfWeek.getValue());
        //获取小时
        int hour = dateTime.getHour();
        System.out.println("hour = " + hour);
        //获取分钟
        int minute=dateTime.getMinute();
        System.out.println("minute = " + minute);
        //获取秒钟
        int second = dateTime.getSecond();
        System.out.println("second = " + second);
    }
}

使用给定值修改日期

public class Test3 {
    public static void main(String[] args) {
        LocalDate date=LocalDate.now();
        System.out.println(date);
        //获取本月的第10天
        LocalDate date1=date.withDayOfMonth(30);
        date1=date.withYear(2021)//修改年龄为2021年
        .withDayOfMonth(10)//修改日期为10号
        .withMonth(4);//修改月份为4月 2021-04-10
        date1=date.withDayOfYear(360);//修改日期为这一年的第360天
        System.out.println("date1 = " + date1);
    }
}

设置日期和时间的偏移量

public class Test4 {
    public static void main(String[] args) {
        LocalDateTime dateTime=LocalDateTime.now();
        System.out.println(dateTime);
        //3天后的时间
            LocalDateTime dateTime1 = dateTime.plusDays(3);
        //2天前的时间
        dateTime1=dateTime.minusDays(2);
        //2个月后的时间
        dateTime1=dateTime.plusMonths(2);
        //3年后的时间
        dateTime1=dateTime.plusYears(3);
        //4周之前的时间
        dateTime1=dateTime.minusWeeks(4);
        //4小时之后的时间
        dateTime1=dateTime.plusHours(4);
        System.out.println(dateTime1);
    }
}

十二、Instant类

代表时间点,获取日期变更子午线时间

public class Test5 {
    public static void main(String[] args) {
        /* Instant instant=Instant.now();
        System.out.println(instant);//
        //获取时间戳
        long l = instant.toEpochMilli();
        System.out.println(l);
        System.out.println(System.currentTimeMillis());*/
        /*Instant max = Instant.MAX;
        System.out.println(max);
        Instant min=Instant.MIN;
        System.out.println(min);*/
        Instant instant=Instant.now();
        //具有偏移量的日期时间对象
        //东八区
        OffsetDateTime dateTime = instant.atOffset(ZoneOffset.of("+8"));
        dateTime=instant.atOffset(ZoneOffset.ofHours(8));
        System.out.println(dateTime);
        //将OffsetDateTime转成LocalDateTime
        LocalDateTime dateTime1=dateTime.toLocalDateTime();
        System.out.println(dateTime1);
        //将时间戳转为Instant
        Instant instant1=Instant.ofEpochMilli(System.currentTimeMillis());
        System.out.println(instant1);
    }
}

DateTimeFormatter格式化和解析

public class Test6 {
    public static void main(String[] args) {
        //将LocalDate转换成字符串String格式
        DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        LocalDate date=LocalDate.now();
        String s = formatter.format(date);
        System.out.println(s);
        //将LocalDateTime转换成字符串String格式
        formatter=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        LocalDateTime localDateTime = LocalDateTime.now();
        String s1 = formatter.format(localDateTime);
        System.out.println("s1 = " + s1);
        //将时间戳转换成字符串日期格式
        long x= Instant.now().toEpochMilli();
        LocalDateTime dateTime =
        LocalDateTime.ofInstant(Instant.ofEpochMilli(x)
        , ZoneId.systemDefault());
        String s2=formatter.format(dateTime);
        System.out.println("s2 = " + s2);
        /* System.out.println(ZoneId.systemDefault());
        System.out.println("dateTime = " + dateTime);*/
        //将字符解析成日期
        formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");
        String s4="2022-09-01";
        LocalDate parse1 = LocalDate.parse(s4, formatter);
        System.out.println("parse1 = " + parse1);
        //将字符解析成日期时间
        formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String s3="2022-05-01 12:20:30";
        LocalDateTime parse = LocalDateTime.parse(s3,formatter);
        System.out.println("parse = " + parse);
    }
}

Period 计算两个"日期"之间的间隔,得到的是年月日,假设 2022年9月2日 和2021年2月1日去计算,得到相关1年7月1天,没有办法知道具体是多少天。

public class Test7 {
    public static void main(String[] args) {
        LocalDate date1=LocalDate.of(1949,10,1);
        LocalDate date2=LocalDate.now();
        /*
        Period x = Period.between(date1, date2);
        System.out.println(x.getYears()); //获取相差年份
        System.out.println(x.getMonths()); //获取相差月份
        System.out.println(x.getDays()); //获取相差天数
        */
        //计算两个日期相差天数方法1
        long days = ChronoUnit.DAYS.between(date1, date2);
        System.out.println("days = " + days);
        //计算两个日期相差天数方法2
        long days1 = date2.toEpochDay() - date1.toEpochDay();
        System.out.println("days1 = " + days1);
    }
}

Duration计算两个日期时间的间隔

public class Test8 {
    public static void main(String[] args) {
        LocalDateTime dateTime=LocalDateTime.
        of(1922,7,10,10,10,5);
        LocalDateTime now=LocalDateTime.now();
        //计算方式1
        Duration duration = Duration.between(dateTime, now);
        /* System.out.println(duration.toDays());//计算两个日期时间相差的天数
        System.out.println(duration.toHours());//计算两个日期时间相差的小时
        System.out.println(duration.toSeconds());//计算两个日期时间相差的秒数
        System.out.println(duration.getSeconds());//和上面相同*/
        //计算方式2
        /*long days = dateTime.until(now, ChronoUnit.DAYS);
        System.out.println("days = " + days);
        long hours = dateTime.until(now, ChronoUnit.HOURS);
        System.out.println("hours = " + hours);
        long months = dateTime.until(now, ChronoUnit.MONTHS);
        System.out.println("months = " + months);*/
        //计算方式3
        long years = ChronoUnit.YEARS.between(dateTime, now);
        System.out.println("years = " + years);
        long hours = ChronoUnit.HOURS.between(dateTime, now);
        System.out.println("hours = " + hours);
        long centuries= ChronoUnit.CENTURIES.between(dateTime, now);
        System.out.println("centuries = " + centuries);
    }
}

时间调节器

public class Test9 {
    public static void main(String[] args) {
        LocalDate date=LocalDate.now();
        //获取本周一时间
        LocalDate date1 = date.with(DayOfWeek.MONDAY);
        //获取下周一时间
        date1=date.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
        //获取本月第一天
        date1=date.with(TemporalAdjusters.firstDayOfMonth());
        //获取本月最后一天
        date1=date.with(TemporalAdjusters.lastDayOfMonth());
        //获取本年第一天
        date1=date.with(TemporalAdjusters.firstDayOfYear());
        System.out.println(date1);
    }
}

Date类和LocalDate(LocalTime\LocalDateTime)转换

public class Test10 {
    public static void main(String[] args) {
        /*//将LocalDate转成Date
        LocalDate date2=LocalDate.now();
        ZonedDateTime zonedDateTime1 = date2.atStartOfDay().atZone(ZoneId.systemDefault());
        Instant instant = zonedDateTime1.toInstant();
        Date date1=Date.from(instant);
        String s = new SimpleDateFormat("yyyy-MM-dd").format(date1);
        System.out.println(s);
        //将LocalDateTime转成Date类型
        LocalDateTime date=LocalDateTime.now();
        ZonedDateTime zonedDateTime = date.atZone(ZoneId.systemDefault());
        Instant instant1 = zonedDateTime.toInstant();
        Date date3= Date.from(instant1);
        String s1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date3);
        System.out.println(s1);*/
        //Date转成LocalDate
        /*Date date4=new Date();
        ZonedDateTime zonedDateTime =  date4.toInstant().atZone(ZoneId.systemDefault());
        LocalDate date5=zonedDateTime.toLocalDate();
        System.out.println(date5);*/
        //Date转成LocalDateTime
        Date date6=new Date();
        ZonedDateTime zonedDateTime =  date6.toInstant().atZone(ZoneId.systemDefault());
        LocalDateTime date7=zonedDateTime.toLocalDateTime();
        LocalTime time=zonedDateTime.toLocalTime();//转成localtime
        System.out.println(date7);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郑在努力ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值