1.java.time提供了新的日期和时间API: LocalDate/LocalTime/LocalDateTime ZoneDateTime/ZoneId Instant Formatter 新API特点: 严格区分日期.时间 所有的类均为不变类(类似String) 修复了Month范围1-12(Jan-Dec) Week范围1-7(Mon-Sun) 2.LocalDate/LocalTime/LocalDateTime LocalDate:本地日期 LocalTime:本地时间 Local…
jdk提供了2套新旧的API来处理日期和时间. java.util * Date * Calendar java.time(JDK>=1.8) * Localdate * LocalTime * LocalDateTime * ZonedDateTime * Instant java.sql时间 java.util.Date表示日期和时间: getYear()/getMonth()/getDate() getHours()/getMinutes()/getSeconds() java.sql.D…
ZonedDatetime = LocalDateTime + ZoneId ZonedDateTime:带时区的日期和时间 ZoneId:新的API定义的时区对象(取代几句的java.util.TimeZone) Instant:时刻对象(epoch seconds) 1.ZonedDateTime对象为携带时区的日期时间 now() getZone() public static void main(String[] args) { ZonedDateTime zbj = ZonedDate…
Calendar类 历史上有许多纪年方法,其差异太大了.为了统一计时,通常采用格里高利日历. 1.创建Calendar对象 Calenda类是一个抽象类,所以不能使用构造器来创建Calendar对象.使用getInstance()方法来获取Calendar对象.这些方法根据TimeZone,Locale类来获取特定的Calendar,如果不指定TimeZone.Locale,则使用默认的TimeZone,Locale来创建Calendar. static void calenda2Date(){…
计算机中如何存储和表示日期和时间 Epoch Time:从1970年1月1日零点(格林威治时区/GMT+00:00)到现在经历的秒数,也叫timestamp, 例如: 秒级: * 北京 2016-11-20 08:15:01=1479600901 * 伦敦 2016-11-20 00:15:01=1479600901 毫秒数: * 北京 2016-11-20 08:15:01.123=1479600901123 浮点数: * 北京 2016-11-20 08:15:01.123=14796009…
1.日期 日期是指某一天,如2016-11-20,2018-1-1 2.时间有2种: 不带日期的时间:14:23:54 带日期的时间:2017-1-1 20:21:23,唯一确定某个时刻 3.时区 时区:全球有24个时区.以英国格林尼治天文台为0度经线.每个时区横跨经度15度.相邻两个时区的时间相差1小时. 计算:区时 = 已知区时 - (已知区时的时区 - 要计算区时的时区) 东时区为正,西时区为负 如:已知北京(东八区)时间为5月1日12:00,求纽约(西五区)的区时. 纽约时间=12:00…
1.中断线程: 如果线程需要执行一个长时间任务,就可能需要中断线程.场景:从网络上下载一个100M的文件,用户在下载过程中中断下载任务的执行. 中断线程就是其他线程给该线程发一个信号,该线程收到信号后结束执行run()方法 1.1中断线程 需要检测isInterrupted()标志,其他线程通过调用interrupt()方法中断该线程 class HelloThread extends Thread{ public void run(){ while(!isInterrupted()){ Sys…
1线程的状态 线程终止的的原因: run()或call()方法执行完成,线程正常结束 线程抛出一个未捕获的Exception或Error 直接调用该线程的stop()方法来结束该线程--该方法容易导致死锁,通常不推荐使用 1.1对已经死亡的线程调用start()方法使他重新启动,会引发IllegalThreadStateException class MyThread extends Thread{ public void run(){ System.out.println("子线程"…
Java语言内置多线程支持: 一个Java程序实际上是一个JVM进程 JVM用一个主线程来执行main()方法 在main()方法中又可以启动多个线程 1.创建新线程 1.1 方法一:使用Thread创建线程 创建MyThread类: 从Thread派生 覆写run()方法 创建MyThread()实例 调用start()启动线程 class MyThread extends Thread{ public void run(){ System.out.println("子线程"); }…
多任务 现代操作系统(windows,MacOS,Linux)都可以执行多任务: 多任务就是同时运行多个任务,例如同时开启钉钉.百度网盘.火狐.谷歌.ps等 操作系统执行多任务就是让多个任务交替执行,例如浏览器执行0.001秒,网盘执行0.001秒,钉钉执行0.001秒.因为任务的数量远远多余CPU的数量,因此任务也是交替执行的 进程.线程 进程(Process):一个任务就是一个进程. 线程(Thread):某些进程内部还需要同时执行多个子任务.例如word打字.拼写检查.打印等 进程和线程的…