Java基础[6]时间API
来源:互联网 发布:传智播客java视频教程 编辑:程序博客网 时间:2024/06/04 18:29
(推荐使用java8新的时间API)
java8新的时间API
1 Java8 java.time.* 下面的常用API
DateTimeFormatterLocalDateLocalDateTimeLocalTimeClockMonthDayYearMonth
2 java8时间API优点
- [线程安全]java.time包下的所有类都是不可变类型且线程安全。老的时间API,java.util.Date为可变类型,以及SimpleDateFormat为非线程安全使其应用非常受限。
- [格式化便捷]DateTimeFormatter类用来格式化和解析时间,线程安全。不用再依赖Joda Time第三方库。
- [判断闰年]LocalDate类有一个很实用的方法isLeapYear()判断该实例是否是一个闰年。
[时间戳]增加了一个Clock时钟类用于获取当时的时间戳,或当前时区下的日期时间信息。以前用到System.currentTimeInMillis()和TimeZone.getDefault()的地方都可用Clock替换。
3 示例代码
import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;import java.time.format.DateTimeFormatter;import org.junit.Test;/** * @author gtc46052 * @version $Id: JavaTime.java, v 0.1 2017年7月30日 上午10:11:14 gao tianci Exp $ */public class JavaTime { @Test public void test() { System.out.println("/************************************************************************************/"); /************************************************************************************/ // LocalDate;LocalTime;LocalDateTime 得到时间对象的一组方法,LocalDateTime最后一位是纳秒,1秒=1000 // 000 000纳秒 System.out.println("获取时间:"); System.out.println("LocalDateTime.now()-->" + LocalDateTime.now()); System.out.println("LocalDate.now()-->" + LocalDate.now()); System.out.println("LocalTime.now()-->" + LocalTime.now()); // 也都有of()方法,都有多个重载,灵活使用 System.out.println("LocalDate.of(2017,05,10)-->" + LocalDate.of(2017, 05, 10)); System.out.println("LocalTime.of(2017,05,10,22,33,44,1000)-->" + LocalTime.of(22, 33, 44, 1000)); System.out.println( "LocalDateTime.of(2017,05,10,22,33,44,1000)-->" + LocalDateTime.of(2017, 05, 10, 22, 33, 44, 1000)); // 可获取年,月,日,时,分,秒,纳秒 System.out.println("LocalDateTime.now()-->" + LocalDateTime.now()); System.out.println("LocalDateTime.now().getYear()-->" + LocalDateTime.now().getYear()); System.out.println("LocalDateTime.now().getMonthValue()-->" + LocalDateTime.now().getMonthValue()); System.out.println("LocalDateTime.now().getDayOfMonth()-->" + LocalDateTime.now().getDayOfMonth()); System.out.println("LocalDateTime.now().getHour()-->" + LocalDateTime.now().getHour()); System.out.println("LocalDateTime.now().getMinute()-->" + LocalDateTime.now().getMinute()); System.out.println("LocalDateTime.now().getSecond()-->" + LocalDateTime.now().getSecond()); System.out.println("LocalDateTime.now().getNano()-->" + LocalDateTime.now().getNano()); System.out.println("/************************************************************************************/"); /************************************************************************************/ System.out.println("解析时间1:(去掉纳秒,秒等)"); LocalDateTime localDateTime = LocalDateTime.now(); System.out.println("localDateTime-->" + localDateTime); System.out.println("localDateTime.withNano(0)-->" + localDateTime.withNano(0)); System.out.println("localDateTime.withSecond(0)-->" + localDateTime.withSecond(0)); System.out.println("localDateTime.withSecond(0)..withNano(0)-->" + localDateTime.withSecond(0).withNano(0)); try { System.out .println("/************************************************************************************/"); /************************************************************************************/ // 一般使用自定义的格式来达到(字符串->时间)(时间->字符串),更加方便灵活 System.out.println("格式化和解析时间2:(时间->字符串)"); DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"); System.out.println("格式化为" + "yyyy-MM-dd hh:mm:ss-->" + LocalDateTime.now().format(format)); System.out .println("/************************************************************************************/"); /************************************************************************************/ System.out.println("格式化和解析时间3:(字符串->时间)||可一次指定多格式字符串"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("[yyyy/MM/dd HH:mm:ss.SSSSSS]" + "[yyyy-MM-dd HH:mm:ss]" + "[dd-MM-yyyy HH:mm:ss]" + "[ddMMyyyy HH:mm:ss]"); System.out.println("[示例]指定可匹配的多格式:" + "[yyyy/MM/dd HH:mm:ss.SSSSSS]" + "[yyyy-MM-dd HH:mm:ss]" + "[dd-MM-yyyy HH:mm:ss]" + "[ddMMyyyy HH:mm:ss]"); System.out.println(LocalDateTime.parse("2016/03/23 22:33:44.256145", formatter)); System.out.println(LocalDateTime.parse("2016-03-23 22:33:44", formatter)); System.out.println(LocalDateTime.parse("23-05-2016 22:33:44", formatter)); System.out.println(LocalDateTime.parse("23052016 22:33:44", formatter)); } catch (Exception e) { System.out.println(e); } }}
结果:
/************************************************************************************/获取时间:LocalDateTime.now()-->2017-07-30T15:24:23.841LocalDate.now()-->2017-07-30LocalTime.now()-->15:24:23.841LocalDate.of(2017,05,10)-->2017-05-10LocalTime.of(2017,05,10,22,33,44,1000)-->22:33:44.000001LocalDateTime.of(2017,05,10,22,33,44,1000)-->2017-05-10T22:33:44.000001LocalDateTime.now()-->2017-07-30T15:24:23.842LocalDateTime.now().getYear()-->2017LocalDateTime.now().getMonthValue()-->7LocalDateTime.now().getDayOfMonth()-->30LocalDateTime.now().getHour()-->15LocalDateTime.now().getMinute()-->24LocalDateTime.now().getSecond()-->23LocalDateTime.now().getNano()-->842000000/************************************************************************************/解析时间1:(去掉纳秒,秒等)localDateTime-->2017-07-30T15:24:23.842localDateTime.withNano(0)-->2017-07-30T15:24:23localDateTime.withSecond(0)-->2017-07-30T15:24:00.842localDateTime.withSecond(0)..withNano(0)-->2017-07-30T15:24/************************************************************************************/格式化和解析时间2:(时间->字符串)格式化为yyyy-MM-dd hh:mm:ss-->2017-07-30 03:24:23/************************************************************************************/格式化和解析时间3:(字符串->时间)||可一次指定多格式字符串[示例]指定可匹配的多格式:[yyyy/MM/dd HH:mm:ss.SSSSSS][yyyy-MM-dd HH:mm:ss][dd-MM-yyyy HH:mm:ss][ddMMyyyy HH:mm:ss]2016-03-23T22:33:44.2561452016-03-23T22:33:442016-05-23T22:33:442016-05-23T22:33:44
4 java老的时间API总结
阅读全文
0 0
- Java基础[6]时间API
- Java时间API
- java API 时间相关
- 【Java】日期时间API
- Java日期/时间API
- Java基础-- Java API
- chap04:Java API基础
- JAVA API基础
- Java API基础
- java基础-常用API
- Java基础-----常用API
- Java基础--API String
- Java基础--API 集合
- java.time时间/日期API
- java.time时间/日期API
- Java 8 日期时间 API
- Java 时间日期API总结
- java心得(时间API)
- 1161: 字符串长度(指针专题)
- CentOS配置YUM源
- 652. Find Duplicate Subtrees
- PHP页面间参数传递的四种方法详解
- 【hadoop】(一)伪分布式hadoop集群安装
- Java基础[6]时间API
- 【English】七月英语总结
- ofbiz jsp-viewhandler
- podspec 简单用法
- 七牛云上传照片
- 欧拉--HDU
- 学而不思则罔,思而不学则殆
- restful(一) 简介
- CDI基础入门之Beans解析