时间格式化处理-符号含义

java.text.SimpleDateFormat 模式字符串

下表是 支持的时间模式的字符串

字符含义
G年代标志符
y
M
d
h时在上午或下午(1~12)
H时在一天中(0~23)
m
s
S毫秒
E星期
D一年中的第几天
F一月中第几个星期几
w一年中第几个星期
W一月中第几个星期
a上午/下午标记符
k时在一天中(1~24)
K时在上午或下午(0~11)
z时区

给出一个较完整的例子如下

System.out.println(
    new SimpleDateFormat("G y-M-d Z E H:m:s:S a").format(new Date())
);

输出结果为

公元 2018-11-26 +0800 星期一 18:3:42:236 下午

其中“公元”是年代,“ 2018-11-26”是格式化的年月日,“+0800” 是当前时区设置,“星期一”是星期,“17:32:11:099”是带毫秒的时间,“下午”是上下午标志。

java.text.SimpleDateFormat 模式扩展用法

上一章节的表格显示的是 java.text.SimpleDateFormat 模式的最基础的字符模式。这些模式实际上是可以有扩展的使用方法的。

字符含义
MM二位数字显示月份。位数不够前面补 0
MMM用月份名称简写显示月份,例如 Nov
MMMMM用月份名称全称显示月份,例如 November
HH二位数字显示 24 小时制的小时,位数不够前面补 0
hh二位数字显示 12 小时制的小时 ,位数不够前面补 0
mm二位数字显示分钟,位数不够前面补 0
hh二位数字显示秒 ,位数不够前面补 0
sss三位数字显毫秒,位数不够前面补 0
非字母字符例如-/*&^%()数字等,直接填充字符串位置
''常量字符,在两个'符号之间的字符串会被当做常量直接显示
System.out.println(
    new SimpleDateFormat("G y-MM-dd Z E HH:mm:ss:SSS a").format(new Date())
);

输出结果为

公元 2018-11-26 +0800 星期一 18:24:05:052 下午

如果我们要输出一些固定的含字母的字符串,则可以用下面的代码

            System.out.println(
                new SimpleDateFormat("'ygc time :'G y-MM-dd Z E HH:mm:ss:SSS a")
                    .format(new Date())
            );

输出结果为:

ygc time :公元 2018-11-26 +0800 星期一 21:01:13:076 下午

在代码中通过指定 java.text.SimpleDateFormat 构造函数中的 java.util.Locale 对象来指定语言选项,然后用不同语言来格式化时间。
编写代码输出每种语言的时间字符串如下所示

            Map<String, String> languages = new LinkedHashMap<>();
            for (Locale locale : Locale.getAvailableLocales()) {
                languages.put(locale.getLanguage(), locale.getDisplayLanguage());
            }
            for (String key : languages.keySet()) {
                if (key.length() > 0) {
                    System.out.println(languages.get(key));
                    System.out.println(
                        new SimpleDateFormat("G y-MMMMM-dd Z E HH:mm:ss:SSS a", new Locale(key))
                            .format(new Date())
                    );
                }
            }


 

 

转载于:https://my.oschina.net/slightScenery/blog/3005072

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值