Java格式化日期的方法
阅读原文时间:2021年04月20日阅读:1

SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
话不多说直接先上例子:
1.文本类型转为日期
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormatTest {
public static void main(String[] args) throws ParseException {
String date=”今天是2018年08月07日”;
//以上格式必须和一下格式相同
SimpleDateFormat sdf=new SimpleDateFormat(“今天是y年M月d日”);
Date date2=sdf.parse(date);
//输出为Tue Aug 07 00:00:00 CST 2018
//字符串时间转为日期类型
System.out.println(date2);

}
}
2.日期转为文本
SimpleDateFormat sdf2= new SimpleDateFormat(“yyyy-MM-dd”);
//输出内容为2018-08-09 输出格式与 SimpleDateFormat()内参数格式保持一致
//还可以添加 hⓂ️s等参数
System.out.println(sdf2.format(date2));
转换图如下

我们应该想到既然有SimpleDateFormat(简单的日期格式器)就应该有DateFormat(日期格式器)这个函数有三个工厂函数
1. getDateInstace 得到(返回)一个日期格式器
2. getTimeInstance得到(返回)一个时间格式器
3. getDateTimeInstance得到(返回)一个日期时间格式器
上边的四种方法分别都有四个参数:
SHORT 日期格式为 18-01-01 参数格式为(3,[Locale.CHINA])
MEDIUM 日期格式为 2018-01-01 参数格式为(2,[Locale.CHINA])
LONG 日期格式为 2018年01月01日 参数格式为(1,[Locale.CHINA])
FULL 日期格式为 2018年8月16日星期四 参数格式为(0,[Locale.CHINA])
package com.date.test;

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class DateFormateTest {
public static void main(String []args){
Date dt=new Date();
DateFormat[] df=new DateFormat[16];
int j; //设置DateFormate.getInstance()参数
for(int i=0;i<4;i++){
df[i]=DateFormat.getDateInstance(i);
System.out.println(“格式过的日期格式为:”+df[i].format(dt));
// 格式过的日期格式为:2018年8月16日 星期四
// 格式过的日期格式为:2018年8月16日
// 格式过的日期格式为:2018-8-16
// 格式过的日期格式为:18-8-16
}

    j=0;
    for(int i=4;i<8;i++){
        df[i]=DateFormat.getTimeInstance(j);
        j++;
        System.out.println("格式过的时间为: "+df[i].format(dt));

// 格式过的时间为: 上午09时51分07秒 CST
// 格式过的时间为: 上午09时51分07秒
// 格式过的时间为: 9:51:07
// 格式过的时间为: 上午9:51
}
j=0;//重置日期参数
for(int i=8;i<12;i++){

        for(int k=0;k<4;k++){
        df[i]=DateFormat.getDateTimeInstance(j,k);

        System.out.println("格式过的日期时间为:"+df[i].format(dt));
        }
        j++;
    }

// 格式过的日期时间为:2018年8月16日 星期四 上午11时12分34秒 CST
// 格式过的日期时间为:2018年8月16日 星期四 上午11时12分34秒
// 格式过的日期时间为:2018年8月16日 星期四 11:12:34
// 格式过的日期时间为:2018年8月16日 星期四 上午11:12
// 格式过的日期时间为:2018年8月16日 上午11时12分34秒 CST
// 格式过的日期时间为:2018年8月16日 上午11时12分34秒
// 格式过的日期时间为:2018年8月16日 11:12:34
// 格式过的日期时间为:2018年8月16日 上午11:12
// 格式过的日期时间为:2018-8-16 上午11时12分34秒 CST
// 格式过的日期时间为:2018-8-16 上午11时12分34秒
// 格式过的日期时间为:2018-8-16 11:12:34
// 格式过的日期时间为:2018-8-16 上午11:12
// 格式过的日期时间为:18-8-16 上午11时12分34秒 CST
// 格式过的日期时间为:18-8-16 上午11时12分34秒
// 格式过的日期时间为:18-8-16 11:12:34
// 格式过的日期时间为:18-8-16 上午11:12

}

}