SimpleDateFormat格式化日期的方法和参数

SimpleDateFormat格式化日期的方法和参数

引言:
例1:格式化方法public String format(Date date)
将Date类型的日期,转变为指定格式的String文本

例2:解析方法Date parse(String source)
将String类型的日期,解析成Date格式;
不同指定格式的格式化对象,只能解析对应格式的String类型日期

注意:在这两个方法中所使用到的日期类都是java.util.Date类

一、创建默认或自定义格式的格式对象
(1)SimpleDateFormat():创建默认格式化方式的对象

(2)public SimpleDateFormat(String pattern):创建指定pattern格式的对象

二、格式对象调用的两种方法(格式化、解析)

(1)格式化方法 format:日期 -> 文本
创建的对象调用public String format(Date date):格式化时间对象date。
(2)解析方法 parse: 文本 -> 日期
public Date parse(String source):解析给定的字符串文本,生成日期。

三、Date类的两个常用方法(getTime和toString)

(1)getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以此 Date 对象表示的毫秒数。

(2)toString():把Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准。

★ pattern格式的写法总结:
yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区  

用下面测试类说明:

例1:格式化方法public String format(Date date)

public class Test5 {
    public static void main(String[] args){
        Date date = new Date();
        //封装默认日期格式对象 & 5种自定义日期格式对象
        SimpleDateFormat F0 = new SimpleDateFormat();
        SimpleDateFormat F1 =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        SimpleDateFormat F2 =new SimpleDateFormat("yy/MM/dd HH:mm");
        SimpleDateFormat F3 =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat F4 =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        SimpleDateFormat F5 =new SimpleDateFormat("一年中的第 D 天 一年中第w个星期 一月中第F个星期 在一天中k时 z时区");
 
        System.out.println(F0.format(date));
        System.out.println(F1.format(date));
        System.out.println(F2.format(date));
        System.out.println(F3.format(date));
        System.out.println(F4.format(date));
        System.out.println(F5.format(date));
    }
}

打印结果:

21-10-17 下午5:15
2021101717155321/10/17 17:15
2021-10-17 17:15:53
20211017171553秒
一年中的第290 天 一年中第43个星期 一月中第3个星期 在一天中17时 CST时区

注意:国外一般认为周日为一周的第一天,在判断时要加以考虑。
例2:解析方法
Date parse(String source)
将String类型的日期,解析成Date格式;
不同指定格式的格式化对象,只能解析对应格式的String类型日期
关键:指定format格式的SimpleDateFormat对象,只能解析同样format格式类型的String日期实参,调用parse()方法,将String类型的日期解析成Date类型

public class Test5 {
    public static void main(String[] args) throws ParseException {
        Date date = new Date();
        //封装5种日期格式对象
        SimpleDateFormat F1 =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        SimpleDateFormat F2 =new SimpleDateFormat("yy/MM/dd HH:mm");
        SimpleDateFormat F3 =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat F4 =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        SimpleDateFormat F5 =new SimpleDateFormat("一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
 
        //解析方法parse
        Date date1 = F1.parse("2018年12月08日 08时08分08秒");
        Date date2 = F2.parse("2018/12/08 09:28");
        Date date3 = F3.parse("2018-12-08 12:15:56");
 
        System.out.println(date1);
        System.out.println(date1.toString());
        System.out.println(date2);
        System.out.println(date3);
    }
}

打印结果:

Sat Dec 08 08:08:08 CST 2018
Sat Dec 08 08:08:08 CST 2018
Sat Dec 08 09:28:00 CST 2018
Sat Dec 08 12:15:56 CST 2018

1.发现Date类型的日期格式如上,调用toString方法变为字符串后格式没有发生改变。

2.parse()中引入的日期参数格式必须与调用该方法的SimpleDateFormat对象封装的格式一致,若不一致会报错。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值