日期和时间模式字符串

日期和时间格式由日期和时间模式字符串指定。

在日期和时间模式字符串中,未加引号的字母 'A''Z''a''z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。

所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。 

定义了以下模式字母(所有其他字符 'A''Z''a''z' 都被保留): 

字母日期或时间元素表示示例
GEra 标志符TextAD
yYear1996; 96
M年中的月份MonthJuly; Jul; 07
w年中的周数Number27
W月份中的周数Number2
D年中的天数Number189
d月份中的天数Number10
F月份中的星期Number2
E星期中的天数TextTuesday; Tue
aAm/pm 标记TextPM
H一天中的小时数(0-23)Number0
k一天中的小时数(1-24)Number24
Kam/pm 中的小时数(0-11)Number0
ham/pm 中的小时数(1-12)Number12
m小时中的分钟数Number30
s分钟中的秒数Number55
S毫秒数Number978
z时区General time zonePacific Standard Time; PST; GMT-08:00
Z时区RFC 822 time zone-0800

模式字母通常是重复的,其数量确定其精确表示。


Number: 对于格式化来说,模式字母的数量是最小的数位,如果数位不够,则用 0 填充以达到此数量。

月份中的天数d测试1:

Calendar cal = Calendar.getInstance();
        cal.set(1987, 0, 2, 3, 4, 5);// 设置时间为1987年1月2日3时4分5秒
        Date d = cal.getTime();
        SimpleDateFormat sdf = new SimpleDateFormat();
        StringBuilder s = new StringBuilder();
        for (int i = 0; i < 2; i++) {
            s.append("d");
            sdf.applyPattern(s.toString());
            System.out.println("" + s + "\t:" + sdf.format(d));
        }

打印:

月份中的天数d测试2:

        Calendar cal = Calendar.getInstance();
        cal.set(1987, 0, 28, 3, 4, 5);// 设置时间为1987年1月28日3时4分5秒
        Date d = cal.getTime();
        SimpleDateFormat sdf = new SimpleDateFormat();
        StringBuilder s = new StringBuilder();
        for (int i = 0; i < 3; i++) {
            s.append("d");
            sdf.applyPattern(s.toString());
            System.out.println("" + s + "\t:" + sdf.format(d));
        }

打印:


Year: 对于格式化来说,模式字母的数量小于4,则年份截取为 2 位数;否则将年份解释为 number。 

年份y测试:

        Calendar cal=Calendar.getInstance();
        cal.set(1987, 1, 2, 3, 4, 5);//设置时间为1987年1月2日3时4分5秒
        Date d=cal.getTime();
        SimpleDateFormat sdf = new SimpleDateFormat();
        StringBuilder s = new StringBuilder();
        for (int i = 0; i < 5; i++) {
            s.append("y");
            sdf.applyPattern(s.toString());
            System.out.println(""+s+"\t:"+sdf.format(d));
        }

打印:


Month: 如果模式字母的数量为 3 或大于 3,则将月份解释为 text;否则解释为 number。

月份M测试:

        Calendar cal = Calendar.getInstance();
        cal.set(1987, 1, 2, 3, 4, 5);// 设置时间为1987年1月2日3时4分5秒
        Date d = cal.getTime();
        SimpleDateFormat sdf = new SimpleDateFormat();
        StringBuilder s = new StringBuilder();
        for (int i = 0; i < 4; i++) {
            s.append("M");
            sdf.applyPattern(s.toString());
            System.out.println("" + s + "\t:" + sdf.format(d));
        }
        cal.set(1987, 11, 2, 3, 4, 5);// 设置时间为1987年12月2日3时4分5秒
        System.out.println("******修改月份为12月********");
        d = cal.getTime();
        s.setLength(0);
        for (int i = 0; i < 4; i++) {
            s.append("M");
            sdf.applyPattern(s.toString());
            System.out.println("" + s + "\t:" + sdf.format(d));
        }

打印:


Text: 对于格式化来说,如果模式字母的数量大于等于 4,则使用完全形式;否则,在可用的情况下使用短形式或缩写形式。


参考文档:JDK API 1.6

转载于:https://www.cnblogs.com/SQP51312/p/6237289.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值