java——java.time包基本使用
来源:互联网 发布:mac 10.13 桌面日历 编辑:程序博客网 时间:2024/06/03 18:43
在java8中,加入的日期类,十分强大,将日期和时间分开来。在java.time包中关键类
Instant——时间戳
LocalDate——处理日期。
LocalTime——处理时间
LocalDateTime——它包含了日期及时间
ZonedDateTime——时区的日期时间。
构造
不需要使用new关键字来创建,而是使用静态工厂方法
,或者传入年月日来构造。这里第二个参数表示月份,可以写成英文月份的缩写。如JUNE
LocalDate ld= LocalDate.now(); LocalDate.of(2017, 6, 23);
方法
获取年月日的方法很简单;
年————-getYear()
月————getMonthValue()
日————-getDayOfMonth()
星期返回1-7————getDayOfWeek()
是否为闰年—————isLeapYear()
获取月份的天数———–lengthOfMonth()
获取年的天数——–lengthOfYear()
当前加longXXX———plusXXX(long)
当前减minusXXX———minusXXX(long)
在这之前还是在这之后———isAfter和isBefore
使用测试
public class TestJavaTime { /** * 时区类 */ @Test public void testzonedDateTime () { System.out.println( "当前时区时间"+ZonedDateTime.now()+ "\n构造时区时间"+ZonedDateTime.of(LocalDateTime.now(),ZoneId.of("Asia/Shanghai"))+ "\n所有可用的时区id"+ ZoneId.getAvailableZoneIds() ); } /** * 计算时间差 */ @Test public void testDTF(){ LocalTime lt1=LocalTime.of(23, 59,59); LocalTime lt2=LocalTime.of(0, 0,0); Duration du= Duration.between(lt2, lt1); System.out.println(du.toHours());//相差的小时数 可能是负数 System.out.println(du.getSeconds()); } /** * 格式化时间 */ @Test public void testDTF(){ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss E"); LocalDateTime ldt = LocalDateTime.now(); String strDate = ldt.format(dtf); System.out.println(strDate); } /** * 枚举的月份和星期类 */ @Test public void testMonthAndWeek() { System.out.println("月份:"+Arrays.toString(Month.values())+ "\n星期:"+Arrays.toString(DayOfWeek.values())+ "\n月份int转name:"+Month.of(3) ); } /** * 年类 */ @Test public void testYear() { Year y= Year.now(); System.out.println("天数:"+y.length()+";是否闰年:"+y.isLeap()+";年份值:"+y.getValue()); } /** * 日期类 */ @Test public void testLocalDate() { LocalDate ld = LocalDate.now();//等价于LocalDate.now(Clock.systemDefaultZone()) System.out.println("日期:"+ld+";年:"+ld.getYear()+";月:"+ld.getMonthValue()+";月中天:"+ld.getDayOfMonth()+"\n"+ "年中天:"+ld.getDayOfYear()+ ";周中天:"+ld.getDayOfWeek()+";是否闰年:"+ld.isLeapYear()+";月份天数:"+ld.lengthOfMonth()+"\n"+ ";年天数:"+ld.lengthOfYear() ); LocalDate a = LocalDate.of(2012, 7, 2); LocalDate b = LocalDate.of(2012, 7, 2); System.out.println("a在b之后吗?"+a.isAfter(b)+"\n"+"a在b之前吗?"+a.isBefore(b)+"\n"+"a和b同一天吗?"+a.isEqual(b)); } /** * 时间类 */ @Test public void testLocalTime() { LocalTime lt = LocalTime.now(); System.out.println("当前时间到毫秒"+lt+";时间"+lt.getHour()+":"+lt.getMinute()+":"+lt.getSecond()+"."+lt.getNano()); } /** * 日期和时间类 */ @Test public void testLocalDateTime() { LocalDateTime ldt=LocalDateTime.now(); System.out.println("当前日期时间"+ldt+";年:"+ldt.getYear()+";月:"+ldt.getMonthValue()+";日:"+ldt.getDayOfMonth()+";时间"+ldt.getHour()+":"+ldt.getMinute()+":"+ldt.getSecond()+"."+ldt.getNano()); } /** * 秒类 */ @Test public void testInstant() { Instant is=Instant.now(); System.out.println("1970-01-01到现在的秒"+is.getEpochSecond()+"==毫秒=="+is.toEpochMilli()); }}
阅读全文
0 0
- java——java.time包基本使用
- Java 8 之 java.time 包
- Java 8 之 java.time 包
- 《黑马程序员》java笔记->【03.3.0】包的基本使用
- java泛型——基本使用
- java--time
- JAVA [Time]
- java——包
- 使用Real-Time Java编写Real-Time程序
- java 包的使用
- Java包使用
- Java 包的使用
- java包及其使用
- java.io包使用
- java.lang包使用
- java包及其使用
- java学习——线程启动的两种方法,Time定时器,synchronized 的使用
- 关于java.sql.Time的使用
- Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
- Fisher判别分析
- 基本数据类型的 autoboxing
- ORA-12520: TNS:监听程序无法为请求的服务器类型找到可用的处理程序解决
- oracle数据库的表空间的建立,用户的建立以及权限的分配
- java——java.time包基本使用
- 常用的正则表达式
- SQL SERVER 2008插入某些生僻字时显示是问号
- ListView,GridView的getView多次调用问题
- Gerrit 使用规范
- LintCode 132 Pattern
- MongoDB--架构搭建(主从、副本集)之副本集
- 由DRM引起的ORA-00481错误
- 将C语言宏定义转换成字符串