学习心得
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("")); } }
格式化挺有意思,多看多记多练