JAVA时间类及java8新时间类
文章目录
- java.util.Date
- 时区
- java.util.Date基本使用
- 初始化
- 输出时间
- 输出时差
- 打印毫秒数
- 比较时间
- java.util.Date的子类
- java.sql.Date的使用
- java.sql.Timestamp使用
- java.sql.Time使用
- SimpleDateFormat使用
- Calender 使用
- java8 新特性—java.time包 时间处理类
- LocalDate类
- LocalTime 类
- LocalDateTime 类
- Instant类
- Duration类
- Period类
- 时间加减操作
java.util.Date
时区
GMT(Greenwich Mean Time)代表格林尼治标准时间,这个大家都知道。
而CST却同时可以代表如下 4 个不同的时区:
- Central Standard Time (USA) UT-6:00
- Central Standard Time (Australia) UT+9:30
- China Standard Time UT+8:00
- Cuba Standard Time UT-4:00
java.util.Date基本使用
初始化
Date date = new Date();
Date date1 = new Date(1000L);
// 默认创建一个本地时间, long类型
// Date date = new Date(System.currentTimeMillis());
// 从1970-1-1 0:0:0开始
输出时间
System.out.println(date1);
// 打印出北京时间 Thu Jan 01 08:00:01 CST 1970
System.out.println(date1.toGMTString());
// 打印出格林标准时间 1 Jan 1970 00:00:01 GMT
输出时差
// 返回与格林时间的时差, 以分钟计时, 正好是8个小时, 此函数输出-480 则北京时间-480分钟等于格林时间
date1.getTimezoneOffset();
打印毫秒数
long m = date1.getTime();
// 打印出date到1970年1月1日的毫秒数
System.out.println("m = " + m);
比较时间
// 比较时间
// 返回boolean类型
date.after(date1);
date.before(date1);
// 返回-1 1 0
date.compareTo(date1);
java.util.Date的子类
java.sql.Date的使用
// sql包的date类, 接收一个毫秒值
java.sql.Date sqldate = new java.sql.Date(1000L);
// 输出一个这样的字符串 1970-01-01
System.out.println(sqldate);
// 转换成格林时间和util中date输出一样
System.out.println(sqldate.toGMTString());
java.sql.Timestamp使用
java.sql.Timestamp timestamp = new Timestamp(2000L);
// 返回的均为本地时间
//1970-01-01 08:00:02.0
//1970-01-01T08:00:02
System.out.println(timestamp);
System.out.println(timestamp.toLocalDateTime());// 返回一个格林瞬时时间
// 1970-01-01T00:00:02Z
System.out.println(timestamp.toInstant());
java.sql.Time使用
java.sql.Time time = new Time(3000L);
// 返回一个不带日期的本地时间 08:00:03
System.out.println(time);
SimpleDateFormat使用
Date date = new Date();
// 指定格式输出时间
// yyyy 年 MM 月 dd日 h 12小时制 H 24小时制0-23 ss秒 SSS毫秒
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
System.out.println(dateFormat.format(date));// 将指定格式的字符串转化成Date
// "2018-05-26 09:03:22.658"
DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
try {date = dateFormat1.parse("2018-05-26 09:03:22.658");// 输出 date = Sat May 26 09:03:22 CST 2018System.out.println("date = " + date);
} catch (ParseException e) {e.printStackTrace();
}
Calender 使用
GregorianCalendar类中存放了各国的标准日历
Calendar calendar = new GregorianCalendar();// 设置日历时间
calendar.set(Calendar.YEAR, 2019);
calendar.set(Calendar.MONTH, 5);
calendar.set(Calendar.DAY_OF_MONTH, 26);//使用Date类设置calendar时间
calendar.setTime(new Date());//取得日历时间 calendar.getTime(); 返回一个Date对象
// 输出Wed Jun 26 12:58:42 CST 2019
System.out.println(calendar.getTime().toString());//使用日历取得时间偏移
// 输出Tue Jun 26 12:58:42 CST 2029
calendar.add(Calendar.YEAR, 10);
System.out.println(calendar.getTime().toString());
java8 新特性—java.time包 时间处理类
LocalDate类
// 本地日期
LocalDate localDate = LocalDate.of(2019, 2, 14);
System.out.println(localDate);
int year = localDate.getYear(); //那一年
System.out.println("year = " + year);
Month month = localDate.getMonth(); // 第几个月
System.out.println("month = " + month);
int dayOfMonth = localDate.getDayOfMonth(); //一个月的第几天
System.out.println("dayOfMonth = " + dayOfMonth);
DayOfWeek dayOfWeek = localDate.getDayOfWeek(); //一周的第几天
System.out.println("dayOfWeek = " + dayOfWeek);
int lenth = localDate.lengthOfMonth(); // 一个月的天数
System.out.println("lenth = " + lenth);
boolean leapYear = localDate.isLeapYear(); // 是否是闰年
System.out.println("leapYear = " + leapYear);//获取当前日期
System.out.println("LocalDate.now() = " + LocalDate.now());
LocalTime 类
// LocalTime 包含具体时间
LocalTime localTime = LocalTime.of(22, 10, 59);
System.out.println("localTime = " + localTime);
LocalDateTime 类
// LocalDateTime包括LocalDate和LocalTime
LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
System.out.println("localDateTime = " + localDateTime);//LocalDateTime 和 LocalDate, LocalTime 相互转换
LocalDate localDate1 = localDateTime.toLocalDate();
LocalTime localTime1 = localDateTime.toLocalTime();
Instant类
// 一个时间戳
Instant instant = Instant.now();
System.out.println("instant = " + instant);
Duration类
// 一个时间段
Duration duration = Duration.between(localDateTime, localTime1);
long toDays = duration.toDays(); // 这个时间段中有几天
long toHours = duration.toHours(); // 这个时间段中有几个小时// 通过of创建时间段
Duration duration1 = Duration.of(5, ChronoUnit.DAYS);
Period类
// 以年月日来表示时间段
Period period = Period.between(localDate, localDate1);
时间加减操作
// 时间加减操作
LocalDate date = LocalDate.now();
LocalDate localDate2 = date.minusDays(5);
LocalDate localDate3 = date.plusYears(10);
date.plus(5, ChronoUnit.DAYS);
System.out.println("localDate3 = " + localDate3);
System.out.println("localDate2 = " + localDate2);
JAVA时间类及java8新时间类相关推荐
- java怎么给时间赋值_Java 8新时间日期库java.time的使用示例
Instant--它代表的是时间戳 LocalDate--不包含具体时间的日期,比如 2020-01-14.它可以用来存储生日,周年纪念日,入职日期等. LocalTime--它代表的是不含日期的时间 ...
- Java基础20:Java8新特性终极指南
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...
- 【读书笔记】《写给大忙人看的Java SE 8》——Java8新特性总结
2019独角兽企业重金招聘Python工程师标准>>> 阅读目录 接口中的默认方法和静态方法 函数式接口和Lambda表达式 Stream API 新的日期和时间 API 杂项改进 ...
- java第四弹 多态 final static 代码块 抽象类 匿名类 接口 Java8新特性:接口增强
1.多态 多态的理解 (1)同一个动作作用于不同的对象产生的不同的行为,比如不同子类对父类的不同的重写. (2)多态就是一个对象的多种形态. 多态的体现 (1)基于继承的实现,不同子类重写了父类方法之 ...
- java 8 date time,Java8 日期/时间(Date Time)API指南
示例方法的详解都包含在注释内,当我们运行程序时,可以得到以下输出: Current Date=2014-04-28 Specific Date=2014-01-01 Current Date in I ...
- java 8 string_String.join() --Java8中String类新增方法
/*** Returns a new String composed of copies of the * {@codeCharSequence elements} joined together w ...
- 6 日期字符串转日期_Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类...
因为Jdk7及以前的日期时间类的不方便使用问题和线程安全问题等问题,2005年,Stephen Colebourne创建了Joda-Time库,作为替代的日期和时间API.Stephen向JCP提交了 ...
- java 包结构 枚举类_Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类...
因为Jdk7及以前的日期时间类的不方便使用问题和线程安全问题等问题,2005年,Stephen Colebourne创建了Joda-Time库,作为替代的日期和时间API.Stephen向JCP提交了 ...
- Java8的LocalDate类用来获取年月日的开始结束时间,当前时间
Java8的LocalDate类用来获取年月日的开始结束时间,当前时间 文章目录 Java8的LocalDate类用来获取年月日的开始结束时间,当前时间 一.获取本日开始结束时间? 二.获取本周开始结 ...
最新文章
- 关于组织参加2020年全国大学生智能汽车竞赛山东赛区比赛的通知
- Linux_Rsync远程同步备份服务器
- bootscripttable前端排序无效_前端你应该知道的八条bug分享给你们
- tensorflow图形识别_手把手教你使用TF服务将TensorFlow模型部署到生产环境
- 苹果5G手机因疫情影响 或将推迟至10月发布
- KETTLE调度第三篇:Windows下调度Dos脚本编写和遇到的一些问题解决
- 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——G题 贪吃的派蒙
- C++之stringstream(字符串与数字相互转换)
- 【Pix4d精品教程】Pix4d空三后处理:点云分类与过滤、DSM精编生成DEM、生成等高线案例详解
- Win10 安装 Ubuntu 使用 Linux 教程
- power bi数据分析_设置Power BI数据网关
- 新唐M261M262M263系列芯片知识总结归纳(2)
- 20829-55-4,cyclo-(L-Trp-L-Trp),cyclo-L-tryptophan-L-tryptophan,cyclo(Trp-Trp)
- OpenAPI 标准规范,了解一下?
- 阿里云张献涛:高性能计算发展的三大趋势
- ibmx3650服务器bios阵列配置安装系统,IBMx3650服务器BIOS阵列配置安装系统(方法二+PXE网启安装法)ok.doc...
- 陪诊服务系统源码,可以在线预约陪诊师的软件平台
- 微博舆情 之 热点话题分析
- 微信小程序图片自适应高度问题
- Web端自动化测试失败原因汇总
热门文章
- MongoDB实战系列之五:mongodb的分片配置
- 【Pytorch】反向传播为NaN报错的排查解决方法,RuntimeError: Function ‘BmmBackward0‘ returned nan values
- 别卷了!23年二级建造师备考攻略
- CSS入门-创建CSS样式表的三种方式
- 电子围栏进出判断工具类
- sorl的全量更新与增量更新
- 估算项目的时间进度!
- 【Maven】Maven之阿里云镜像仓库配置
- Linux系统之AIDE(入侵检测工具)
- 京东到家公布”夏日大促成绩:平台销售额同比去年增长135%