Java日期转换格式

package com.date;

import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.MonthDay;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Date;

import org.junit.Test;

 
public class DateAllMethods {
    //测试LocalDate类★ ★★★★★★★★★★★★★★★★★★★★★★★★
        @Test
        public void testLocalDate() {
            // 获取当前日期(只包含日期,不包含时间)第三代
            //只有日期 
            LocalDate date = LocalDate.now();
            System.out.println(date);

            // 获取日期的指定部分
            System.out.println("year:"+date.getYear());
            System.out.println("month:"+date.getMonth());
            System.out.println("day:"+date.getDayOfMonth());
            System.out.println("week:"+date.getDayOfWeek());

            // 根据指定的日期参数,创建LocalDate对象
            LocalDate of = LocalDate.of(2010, 3, 2);
            //可以使用年月日来反向生成当前的日期对象
            System.out.println(of);

        }

        // 测试LocalTime类
        @Test
        public void testLocalTime() {
            // 获取当前时间(只包含时间,不包含日期)
            LocalTime time = LocalTime.now();
            System.out.println(time);

            // 获取时间的指定部分
            System.out.println("hour:" + time.getHour());
            System.out.println("minute:" + time.getMinute());

            System.out.println("second:" + time.getSecond());
            System.out.println("nano:" + time.getNano());

            // 根据指定的时间参数,创建LocalTime对象
            LocalTime of = LocalTime.of(10, 20, 55);
            System.out.println(of);

        }

        // 测试LocalDateTime类
        @Test
        public void testLocalDateTime() {
            // 获取当前时间(包含时间+日期)

            LocalDateTime time = LocalDateTime.now();

            // 获取时间的指定部分
            System.out.println("year:" + time.getYear());
            System.out.println("month:" + time.getMonthValue());
            System.out.println("day:" + time.getMonth());
            System.out.println("day:" + time.getDayOfMonth());
            System.out.println("hour:" + time.getHour());
            System.out.println("minute:" + time.getMinute());

            System.out.println("second:" + time.getSecond());
            System.out.println("nano:" + time.getNano());

            // 根据指定的时间参数,创建LocalTime对象
            LocalDateTime of = LocalDateTime.of(2020, 2, 2, 10, 20, 55);
            System.out.println(of);

        }

        // 测试MonthDay类:检查重复事件
        @Test
        public void testMonthDay() {

            LocalDate birth = LocalDate.of(1994, 12, 12);
            MonthDay birthMonthDay = MonthDay.of(birth.getMonthValue(), birth.getDayOfMonth());

            LocalDate now = LocalDate.now();//当前日期
            MonthDay current = MonthDay.from(now); //通过LocalDate 获取月日
            System.out.println(current);

            //我们的日期是相互可以比较的
            if (birthMonthDay.equals(current)) {
                System.out.println("今天生日");
            } else {
                System.out.println("今天不生日");
            }

        }

        // 测试是否是闰年 ★ ★★★★★★★★★★★★★★★★★★★★★★★★
        @Test
        public void testIsLeapYear() {

            LocalDate now = LocalDate.now();//当前日期

            System.out.println(now.isLeapYear());//判断闰年

        }

        // 测试增加日期的某个部分
        @Test
        public void testPlusDate() {

            LocalDate now = LocalDate.now();
            //查看三年前今天的日期
            LocalDate plusYears = now.plusYears(-3); //这里很灵活
            //LocalDate plusYears = now.plusWeeks(-3); //查看三周前的日期
            System.out.println(plusYears);

        }

        // 使用plus方法测试增加时间的某个部分
        @Test
        public void testPlusTime() {

            LocalTime now = LocalTime.now();
            //查看一小时后的时间
            LocalTime plusHours = now.plusHours(1);

            System.out.println(plusHours);

        }

        // 使用minus方法测试查看一年前和一年后的日期
        @SuppressWarnings("unused")
        @Test
        public void testMinusTime() {
            LocalDate now = LocalDate.now();
            //在当前日期基础上减去1年
            LocalDate minus = now.minus(1, ChronoUnit.YEARS);
            
            LocalDate minus2 = now.minusYears(1);
            System.out.println(minus2);

        }
        //测试时间戳类:Instant ,相当于以前的Date类 ★ ★★★★★★★★★★★★★★★★★★★★★★★★
        @Test 
        public void testInstant() {
            
            Instant now = Instant.now();
            System.out.println(now);
            
            //与Date类的转换
            Date date = Date.from(now);
            System.out.println(date);
            
            Instant instant = date.toInstant();
            
            System.out.println(instant);
            
            

        }
        //测试DateTimeFormatter ★ ★★★★★★★★★★★★★★★★★★★★★★★★
        @Test 
        public void testDateTimeFormatter() {
            
            //第三代 DateTimeFormatter
            //可以将 日期转换成字符串
            DateTimeFormatter pattern = DateTimeFormatter.ofPattern("MM-dd yyyy HH:mm:ss");
            
            //将字符串转换成日期
            
            LocalDateTime parse = LocalDateTime.parse("03-03 2017 08:40:50", pattern);
            System.out.println(parse);
            
            //将日期转换成字符串
            
            String format = pattern.format(parse);
            System.out.println(format);
                

        }
    }

 

posted @ 2020-03-14 08:11  蜜桃先生  阅读(575)  评论(0编辑  收藏  举报