学习心得
Java的值传递和所谓的引用传递本质上Java只有值传递,所有的赋值传参都是一次值的拷贝。引用数据类型拷贝的就是引用地址,基本数据类型拷贝的是值,不会传入实例对象本身。

心情

今天学习关于api的知识,时间时区的转换,英文课

掌握程度
背吧
-----------------------------------------------------                                                                                                       ---------------------------------------------------------------
* 时间相关api
* 时间:
* 格林尼治天文台,伦敦
* 时区:东八区
* 北京时间,+8。
* 时间戳:格林尼治时间1970.1.1 00:00:00 到今天2022.7.28 9:29:30的毫秒数
* 1s=1000ms,1min=60s,1h=60min,1day=24h。时间戳在全世界都是固定的。
import java.util.Date;
/**
 * 日期类
 * Date
 */
public class Ch04 {

    public static void main(String[] args) {
        // 获取系统当前日期时间
        Date date = new Date();
        System.out.println(date);

        long millis = System.currentTimeMillis();
        // 1658974415756
        System.out.println(millis);

        date = new Date(1658974415756L);
        System.out.println(date);
    }
}
* 日历类:日期时间
* Calendar是一个抽象类。
* 初始化:
* 提供了一组对“年月日时分秒星期”等信息的操作函数。操作不同时区的信息。
* JDK1.1版本开始,在处理时间和日期时,系统推荐使用Calendar类。
* Calendar要比Date强大的多
public class Ch06 {

    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.get(Calendar.YEAR));
        System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
        System.out.println(calendar.get(Calendar.DATE));
        System.out.println(calendar.get(Calendar.MONTH));
        System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
        System.out.println(calendar.get(Calendar.HOUR));
        System.out.println(calendar.get(Calendar.MILLISECOND));
    }
}

时区:

import java.util.Calendar;
import java.util.Date;
import java.util.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));
    }
}

ZoneId:

import java.time.ZoneId;
import java.util.TimeZone;

/**
 * ZoneId
 */
public class Ch08 {
    public static void main(String[] args) {
        ZoneId zoneId = ZoneId.of("America/New_York");
        System.out.println(TimeZone.getTimeZone(zoneId));
    }
}
* 日期格式化
* SimpleDateFormat
*
* format:格式化Date类型,把Date类型转成String类型
* 我们要展示数据到客户端。
* parse:把String类型的时间,转成Date类型
* 从客户端传过来的时间,一般都是String类型,存入数据库
yyyy:年
yy:年的后两位
MM:月
dd:日
HH:小时 24小时制
hh:小时 12小时制
mm:分
ss:秒
SSS:毫秒
2022年7月28日 11:23:50.300
   import java.text.SimpleDateFormat;
import java.util.Date;


public class Ch09 {

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

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
        String s = sdf.format(date);
        System.out.println(s);
    }
}
*  JDK的日期时间类
* 在JDK8之前,处理日期和时间,基本上用我们上面的那几个类
* Date和Calender获取到的月份都是0-11,不是我们日常生活中的1-12
*
* 阿里巴巴规约明确要求
* 如果是jdk8的应用,可以使用Instant代替Date
* LocaDateTime代替Calender
* DateTimeFormatter代替SimpleDateFormat
import java.time.Instant;
import java.time.ZoneId;


public class Ch01 {
    public static void main(String[] args) {
        Instant instant = Instant .now();
        System.out.println(instant.atZone(ZoneId.systemDefault()));
        //获取秒数
        System.out.println(instant.getEpochSecond());
        //获取毫秒数
        System.out.println(instant.toEpochMilli());
        long millis = System.currentTimeMillis();
        System.out.println(Instant.ofEpochMilli(millis));
        System.out.println("-----------------------------");
        String text = "2022-07-28T11:08:30.774Z";
        Instant parse = Instant.parse(text);
        System.out.println(parse);

    }
}

一堆东西,也可以自己查

/**
 *  持续时间Duration
 */

import java.time.Duration;
import java.time.Instant;

public class Ch02 {
    public static void main(String[] args) {
        Instant instant = Instant.now();
        Instant plus = instant.plus(Duration.ofDays(5));
        System.out.println(plus);
    }
}
import java.time.LocalDate;

/**
 *  LocalDate 获取当前日期
 */
public class Ch03 {
    public static void main(String[] args) {
        LocalDate now = LocalDate.now();
        System.out.println(now);
        System.out.println(now.getMonth());
        System.out.println(now.getDayOfWeek());
        System.out.println(now.getDayOfMonth());
        //of指定一个特定时间
        LocalDate of = LocalDate.of(2022,9,9);
        System.out.println(of);

    }
}
import java.time.LocalTime;

/**
 *  LocalTime :本地时间
 */
public class Ch04 {
    public static void main(String[] args) {
        LocalTime now = LocalTime.now();
        System.out.println(now);
    }
}
import java.time.LocalDateTime;

/**
 *  LocalDateTime:获取日期和时间
 */
public class Ch05 {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);

    }
}
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

/**
 *   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));

    }
}
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

/**
 *  Instance和Date的转换
 *  Instance和LocalDate的转换
 *  Date和LocalDateTime
 *
 */
public class Ch07 {
    public static void main(String[] args) {
        Instant instant = Instant.now();

        Date date = Date.from(instant);

        Instant toInstant = date.toInstant();

//        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId);
    }
}
/**
 *  数学类 Math
 *  随机数 random()
 *  向上取整ceil()
 *  向下取整floor()
 *  四舍五入rand()  long返回值
 */
public class Ch08 {
    public static void main(String[] args) {
        //生成0-1的随机数
        System.out.println(Math.random());
        //
    }
}
import java.math.BigDecimal;

/**
 *  统计类
 *  BigDecimal
 */
public class Ch09 {
    public static void main(String[] args) {
        double d1 = 0.7;
        double d2 = 0.1;
//        System.out.println(d1 + d2);
        BigDecimal bigDecimal = new BigDecimal(d1);
        BigDecimal bigDecimal2 = new BigDecimal(d2);
        System.out.println(bigDecimal.add(bigDecimal2));//问题更大了
        //没有问题用字符串
        BigDecimal bigDecimal3 = new BigDecimal("0.7");
        BigDecimal bigDecimal4 = new BigDecimal("0.1");
        System.out.println(bigDecimal3.add(bigDecimal4));
    }
}
import java.util.Random;
/**
 * 随机
 * Random
 */
public class Ch10 {

    public static void main(String[] args) {
        Random random = new Random();
        System.out.println(random.nextDouble());
    }
}
import java.util.Arrays;

/**
 * Arrays数组的工具类
 */
public class Ch11 {
    public static void main(String[] args) {
        int [] arr = new int[]{1,2,3,4,5};
        System.out.println(Arrays.toString(arr));
        Arrays.sort(arr);
        System.out.println(Arrays.binarySearch(arr, 4));
        int[] ints = Arrays.copyOf(arr, 2);
        System.out.println(Arrays.toString(ints));
        System.out.println(Arrays.equals(arr, ints));
    }
}
import java.util.Properties;
/**
 * System类
 * 系统类
 */
public class Ch12 {
    public static void main(String[] args) {
//        System.exit(-1);
//        System.out.println();
//        System.err.println("错误信息");
//        System.currentTimeMillis();
        Properties properties = System.getProperties();
        System.out.println(properties);
    }
}
import java.util.Objects;

/**
 * Objects
 */
public class Ch13 {

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

 

格式化挺有意思,多看多记多练
posted on 2022-07-28 20:11  骐琳  阅读(11)  评论(0编辑  收藏  举报

你点我就回上面去了ヾ(≧O≦)〃嗷~