java_日期各种格式转换(实例测试-亲测有效)

java_日期格式转换(实例测试)

测试类:


import utils.DateUtils;
import vo.User;

import java.util.Date;

/**
 * @ClassName: DateUtilsTest
 * @Author: 江湖@小小白
 * @Date: 2021/12/30 13:51
 * @Description: 日期格式转换测试类
 */
public class DateUtilsTest {
    public static void main(String[] args) {

        //创建 User 对象
        User user1 = new User();
        user1.setId("1");
        user1.setName("a");
        user1.setAge(20);
        user1.setBirthday("20210112");
        user1.setCreateTime("2021-12-30 14:15:30");
        System.out.println(user1);
        System.out.println("=================================================================================");

        User user2 = new User();
        user2.setId("2");
        user2.setName("b");
        user2.setAge(21);
        user2.setBirthday("2021-01-10");
        user2.setCreateTime("2021-12-30 14:15:30");
        System.out.println(user2);
        System.out.println("=================================================================================");

        //创建 User 对象
        User user3 = new User();
        user3.setId("3");
        user3.setName("c");
        user3.setAge(30);
        user3.setBirthday("20210110");
        user3.setCreateTime("2021-01-12 14:15:30");
        System.out.println(user3);
        System.out.println("=================================================================================");

        //创建 User 对象
        User user4 = new User();
        user4.setId("3");
        user4.setName("c");
        user4.setAge(30);
        user4.setBirthday("2021-01-10");
        user4.setCreateTime("2021-01-12 14:15:30");
        System.out.println(user4);
        System.out.println("=================================================================================");

        /**
         * Test1:
         * 8 位字符串时间格式 转为 10 位的横杠时间格式
         * eg:20211230 转为 2021-12-30
         */
        System.out.println(" Test1 —— 8 位字符串时间格式 转为 10 位的横杠时间格式: " + DateUtils.str8FormatStr10(user1.getBirthday()));
        System.out.println("=================================================================================");

        /**
         * Test2:
         * 8 位字符串时间格式 转为 10 位的斜杠时间格式
         * eg:20211230 转为 2021/12/30
         */
        System.out.println(" Test2 —— 8 位字符串时间格式 转为 10 位的斜杠时间格式: " + DateUtils.str8FormatStr10Slash(user1.getBirthday()));
        System.out.println("=================================================================================");

        /**
         * Test3:
         * 8 位日期格式的字符串 转化为 Date 类型
         * eg:20211230 转为 Date;
         */
        System.out.println(" Test3 —— 8 位日期格式的字符串 转化为 Date 类型: " + DateUtils.str8FormatDate(user1.getBirthday()));
        System.out.println("=================================================================================");

        /**
         * Test4:
         * 10 位日期格式的字符串 转化为  Date 类型
         * eg:2021-12-30 转为 Date;
         */
        System.out.println(" Test4 —— 10 位日期格式的字符串 转化为  Date 类型: " + DateUtils.str10FormatDate(user2.getBirthday()));
        System.out.println("=================================================================================");

        /**
         * Test5:
         * 8 位字符串日期转为 6 位字符串
         * eg:20211230 转为 12-30
         */
        System.out.println(" Test5 —— 8 位字符串日期转为 6 位字符串: " + DateUtils.str8FormatStr6(user1.getBirthday()));
        System.out.println("=================================================================================");

        /**
         * Test6:
         * 将 Date 类型的字段转化为 10 位横杠分割的日期字符串
         */
        //8 位日期格式的字符串 转化为 Date 类型
        Date date = DateUtils.str8FormatDate(user1.getBirthday());
        System.out.println(" 调用 Test3 —— 8 位日期格式的字符串 转化为 Date 类型: " + DateUtils.str8FormatDate(user1.getBirthday()));
        //将 Date 类型的字段转化为 10 位横杠分割的日期字符串
        System.out.println(" Test6 —— 将 Date 类型的字段转化为 10 位横杠分割的日期字符串: " +DateUtils.dateFormatStr10(date));
        System.out.println("=================================================================================");

        /**
         * Test7:
         * 8 位字符串时间格式 转为 10 位的年月日时间格式,月和日以 0 开头就去掉 0,2022年1月11日
         * 例如:20220111 转为 22-01-11
         */
        System.out.println(" Test7 —— 8 位字符串时间格式 转为 10 位的年月日时间格式,月和日以 0 开头就去掉 0,20210110 日期格式转换: " + DateUtils.str8FormatStr10YMD(user3.getBirthday()));
        System.out.println("=================================================================================");

        /**
         * Test8:
         * 10 位字符串时间格式 转为 10 位的年月日时间格式,月和日以 0 开头就去掉 0,2022年1月11日
         * 例如:2022-01-11 转为 22-01-11
         */
        System.out.println(" Test8 —— 10 位字符串时间格式 转为 10 位的年月日时间格式,月和日以 0 开头就去掉 0,2021-01-10 日期格式转换: " + DateUtils.str10FormatStr10YMD(user4.getBirthday()));
        System.out.println("=================================================================================");



    }
}


测试结果1:

在这里插入图片描述
测试结果8::

在这里插入图片描述

实例类:


package vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * @ClassName: User
 * @Author: 江湖@小小白
 * @Date: 2021/12/21 10:20
 * @Description: User
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {

    /**
     * id
     */
    private String id;

    /**
     * 姓名
     */
    private String name;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 生日
     */
    private String birthday;

    /**
     * 创建日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String createTime;

}


DateUtils 工具类:


package utils;

import org.apache.commons.lang3.StringUtils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @ClassName: DateUtils
 * @Author: 江湖@小小白
 * @Date: 2021/12/23 9:05
 * @Description: 日期格式转换工具类
 */
public class DateUtils {

    /**
     * 8 位字符串时间格式 转为 10 位的横杠时间格式
     * 例如:20211223 转为 2021-12-23
     * @param str_date
     * @return
     */
    public static String str8FormatStr10(String str_date)  {
        String date = "";
        if (StringUtils.isBlank(str_date) || str_date.length() != 8) {
            return "";
        }
        SimpleDateFormat parseFormat = new SimpleDateFormat("yyyyMMdd");
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date parseDate = parseFormat.parse(str_date);
            date = dateFormat.format(parseDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

    /**
     * 8 位字符串时间格式 转为 10 位的斜杠时间格式
     * 例如:20211230 转为 2021/12/30
     * @param str_date
     * @return
     */
    public static String str8FormatStr10Slash( String str_date ){

        String date = "";
        if ( StringUtils.isBlank(str_date) || str_date.length() != 8 ) {
            return "";
        }

        SimpleDateFormat parseFormat = new SimpleDateFormat("yyyyMMdd");
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");

        try {
            Date parseDate = parseFormat.parse(str_date);
            date = dateFormat.format(parseDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

    /**
     * 8位日期格式的字符串 转化为 Date 类型
     * 例如:20211230 转为 Date;
     * @param str_date
     * @return
     */
    public static Date str8FormatDate(String str_date){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
        Date date = null;
        if (StringUtils.isBlank(str_date) || str_date.length() != 8) {
            return null;
        }
        try {
            date = dateFormat.parse(str_date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

    /**
     * 10 位日期格式的字符串 转化为  Date 类型
     * 例如:2021-12-30 转为 Date;
     * @param str_date
     * @return
     */
    public static Date str10FormatDate( String str_date ) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        if ( StringUtils.isBlank(str_date) || str_date.length() != 10 ) {
            return null;
        }
        try {
            date = dateFormat.parse(str_date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

    /**
     * 8 位字符串日期转为 6 位字符串
     * 例如:20211230 转为 12-30
     * @param str_date
     * @return
     */
    public static String str8FormatStr6(String str_date){
        if (StringUtils.isBlank(str_date) || str_date.length() != 8) {
            return "";
        }
        String dateStr = "";
        SimpleDateFormat parseFormat = new SimpleDateFormat("yyyyMMdd");
        SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd");
        try {
            Date parse = parseFormat.parse(str_date);
            dateStr = dateFormat.format(parse);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return dateStr;
    }

    /**
     * 将 Date 类型的字段转化为 10 位横杠分割的日期字符串
     * 例如:Date类型的字段 转为 2021-12-30
     * @param date
     * @return
     */
    public static String dateFormatStr10(Date date){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        return dateFormat.format(date);

    }

    /**
     * 8 位字符串时间格式 转为 10 位的年月日时间格式,月和日以 0 开头就去掉 0,2022年1月11日
     * 例如:20220111 转为 2022年1月11日
     * @param dateStr
     * @return
     */
    public static String str8FormatStr10YMD(String dateStr)  {
        String date = "";
        if (StringUtils.isBlank(dateStr) || dateStr.length() != 8 ) {
            return "";
        }
        SimpleDateFormat parseFormat = new SimpleDateFormat("yyyyMMdd");
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年M月d日");
        try {
            Date parseDate = parseFormat.parse(dateStr);
            date = dateFormat.format(parseDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

    /**
     * 10 位字符串时间格式 转为 10 位的年月日时间格式,月和日以 0 开头就去掉 0,2022年1月11日
     * 例如:2022-01-11 转为 2022年1月11日
     * @param dateStr
     * @return
     */
    public static String str10FormatStr10YMD(String dateStr)  {
        String date = "";
        if (StringUtils.isBlank(dateStr) || dateStr.length() != 10 ) {
            return "";
        }
        SimpleDateFormat parseFormat = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年M月d日");
        try {
            Date parseDate = parseFormat.parse(dateStr);
            date = dateFormat.format(parseDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }


}


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值