博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java基础review(1)---jdk8前后日期时间工具使用总结
阅读量:4075 次
发布时间:2019-05-25

本文共 6035 字,大约阅读时间需要 20 分钟。

第一部分 jdk8前日期时间工具使用总结

1、Date基本操作

@Test	public void test0() {		Date date = new Date(); // 当前时间		long time = date.getTime();		System.out.println(time); // 1610200422658 --- 1970开始的毫秒		date = new Date(1610200422658l); // 用时间戳构造Date	}

2、时间格式化字符串

@Test	public void test1(){		System.out.println(Main_date.format(new Date(), "yyyy-MM-dd HH:mm:ss")); //格式: yyyy-MM-dd HH:mm:ss		System.out.println(Main_date.format(new Date(), "yyyy-MM-dd")); //格式: yyyy-MM-dd HH:mm:ss	}			public static String format(Date date, String format) {		SimpleDateFormat formatter = new SimpleDateFormat(format);		String dateString = formatter.format(date);		return dateString;	}

3、字符串解析成时间

@Test	public void test2() throws ParseException{		System.out.println(Main_date.parseDate("2017-01-10 23:53:53","yyyy-MM-dd HH:mm:ss")); //格式: yyyy-MM-dd HH:mm:ss		System.out.println(Main_date.parseDate("2017-01-10","yyyy-MM-dd")); //格式: yyyy-MM-dd HH:mm:ss	}		public static Date parseDate(String date,String format) throws ParseException {	   SimpleDateFormat formatter = new SimpleDateFormat(format);	   Date dateString = formatter.parse(date);	   return dateString;	}

4、Calendar的基本操作

 * 基本方法:

     *      setTime() 设置时间
     *      add(unit,index) 增加指定单位的时间
     *      get(unit) 得到指定单位的时间
     * 单位参数unit:
     *      Calendar.YEAR 年
     *   Calendar.MONTH 月
     *   Calendar.DAY_OF_WEEK 本周的天数
     *   Calendar.DAY_OF_YEAR 本年的天数
     *   Calendar.DAY_OF_MONTH 本月的天数
     *   Calendar.HOUR_OF_DAY 当天的时间
     * 注意点:
     *   month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示。。
     *   week 从1开始,星期日是1,星期一是2,依次。。 (js是从0,即星期日是0,星期一是1。)

@Test	public void test3() {		Calendar calendar = Calendar.getInstance();		calendar.setTime(new Date());		calendar.add(Calendar.YEAR, 1);		String res = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());		System.out.println(res);	}

 5、Calendar的综合演示

@Test	public void test4() throws ParseException {		// 创建 Calendar 对象		Calendar calendar = Calendar.getInstance();		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-M-d HH:mm:ss");		Date date = dateFormat.parse("2018-4-22 13:24:16");		// date = new Date();		calendar.setTime(date);				// 显示年份		int year = calendar.get(Calendar.YEAR);		System.out.println("year is = " + String.valueOf(year));		// 显示月份 (从0开始, 实际显示要加一)		int month = calendar.get(Calendar.MONTH);		System.out.println("nth is = " + (month + 1));		// 本周几		int week = calendar.get(Calendar.DAY_OF_WEEK);		System.out.println("week is = " + week);		// 今年的第 N 天		int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);		System.out.println("DAY_OF_YEAR is = " + DAY_OF_YEAR);		// 本月第 N 天		int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);		System.out.println("DAY_OF_MONTH = " + String.valueOf(DAY_OF_MONTH));		// 3小时以后		calendar.add(Calendar.HOUR_OF_DAY, 3);		int HOUR_OF_DAY = calendar.get(Calendar.HOUR_OF_DAY);		System.out.println("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY);	}

 

第二部分 jdk8日期时间工具使用总结

 * 概述:新增java.time包下的LocalDateTime、LocalDate、LocalTime

 *       LocalDate 表示本地日期,无时间,不带时区信息
 *       LocalTime 表示本地时间, 无日期,不带时区信息
 *       LocalDateTime 表示本地时间和日期,不带时区信息
 *       LocalDate和LocalTime实例能够构建LocalDateTime实例,反之LocalDateTime能获取另外2个实例

1、基本Api

     * 创建时间对象和获取的操作

     * now() 创建当前时间
     * of() 创建指定时间
     * getYear() 得到年
     * getMonthValue() 得到月
     * getDayOfMonth() 月份天数
     * ...
     * toLocalDate():将LocalDateTime转换为相应的LocalDate对象
     * toLocalTime():将LocalDateTime转换为相应的LocalTime对象

public void test() {		LocalDateTime now = LocalDateTime.now();		System.out.println("完整时间:" + now); // 2021-01-09T22:27:31.573		LocalDate localDate = now.toLocalDate();		LocalTime localTime = now.toLocalTime();		System.out.println("当前日期:" + localDate); // 2021-01-09		System.out.println("当前时间:" + localTime); // 22:27:31.573		Month month = now.getMonth(); 		System.out.println(month.getValue()); // 1 注意:月在新的api已经加了1		System.out.println(now.getDayOfMonth()); // 9 当前月的天数		System.out.println(now.getSecond());  // 24 当前秒		LocalDateTime date2 = now.withDayOfMonth(10).withYear(2012); //改成当前月+10天,和2012年		System.out.println(date2); //2012-03-10T15:57:09.821		LocalDate date3 = LocalDate.of(2014, Month.DECEMBER, 12);		System.out.println(date3); //2014-12-12		LocalTime date4 = LocalTime.of(22, 15);		System.out.println(date4); //22:15		System.out.println(LocalTime.parse("20:15:30")); //20:15:30	}

 2、判断相关Api

     * isBefore() 是否参数前

     * isAfter() 是否参数后
     * equals() 是否相等

@Test	public void test1() {	    LocalDate now = LocalDate.now();	    LocalDate of = LocalDate.of(2021, 1, 19);	    boolean before = of.isBefore(now); 	    System.out.println(before); // false	    	    boolean after = of.isAfter(now);	    System.out.println(after); // true	    	    boolean after1 = now.equals(of);	    System.out.println(after1); // false	}

3、日期增减Api

     * plusYears() 年增加

     * plusMonths() 月增加
     * ...  
     * minusYears() 年减少
     * ...

@Test	public void test2() {		LocalDateTime now = LocalDateTime.now();	    System.out.println(now);	    //可以给当前的日期增加时间量	    LocalDateTime newDate = now.plusYears(1);	    System.out.println(newDate.getYear());	    LocalDate now1 = LocalDate.now();	    System.out.println(now1);	    LocalDate newDate2 = now1.minusDays(10);	    int dayOfMonth = newDate2.getDayOfMonth();	    System.out.println(dayOfMonth);	}

 4、指定年月日时分秒的方法

     *  with(TemporalAdjuster adjuster):指定特殊时间

     *    withYear(int year):指定年
     *    withDayOfYear(int dayOfYear):指定日
     *    withMonth(int month):指定月
     *    withDayOfMonth(int dayOfMonth):指定日

public void test3() {		//指定某个日期的方法 with()方法	    LocalDate now2 = LocalDate.now();	    System.out.println(now2);	    LocalDate localDate = now2.withYear(2014);	    System.out.println(localDate);	    // TemporalAdjusters工具类,提供了一些获取特殊日期的方法	    LocalDate with = now2.with(TemporalAdjusters.firstDayOfMonth());	    System.out.println(with);	    LocalDate with1 = now2.with(TemporalAdjusters.firstDayOfNextMonth());	    System.out.println(with1);	}

 

    /**

     * 5、格式化和解析
     *     format(DateTimeFormatter ) // 格式化日期
     *  parse(dateStr, DateTimeFormatter) // 从日期字符串解析成指定格式。
     */
    @Test
    public void test4() {
        String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        System.out.println(format);
        LocalDate parse = LocalDate.parse("2017-01-10",DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        System.out.println(parse);
    }

转载地址:http://yeuni.baihongyu.com/

你可能感兴趣的文章
unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5
查看>>
unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5
查看>>
Unity3D 2D模拟经营游戏 洗车沙龙 完整源码
查看>>
Unity3D 2D模拟经营游戏 洗车沙龙 完整源码
查看>>
AXURE RP8 - 实战手册 网站和APP原型制作案例精粹
查看>>
NGUI: Next-Gen UI 2018.3.0f
查看>>
uSurvival 1.41多人在线生存逃杀吃鸡类游戏源码
查看>>
玩转@Git三剑客
查看>>
Unity实现c#热更新方案探究(一)
查看>>
uSurvival 1.41多人在线生存逃杀吃鸡类游戏源码
查看>>
AXURE RP8 - 实战手册 网站和APP原型制作案例精粹
查看>>
c#传不确定的参数个数,比如int型
查看>>
python3调用腾讯AI开放平台
查看>>
vector的push_back对于拷贝构造和赋值操作的调用
查看>>
OpenSees开发(一)windows 上编译opensees (使用vs2005)
查看>>
小议函数指针
查看>>
WEB服务器、应用程序服务器、HTTP服务器区别
查看>>
用户名称修改的完美解决方法
查看>>
discuz 3 头像显示不成功
查看>>
Discuz!X3.2 uc_server密码正确无法登录的解决方法
查看>>