日期和时间格式化
public class StringFormatTest {
public static void main(String[] args) {
Date date = new Date();
//简称和全称在英文下会有区分
System.out.println("月份简称:"+String.format("%tb", date));
System.out.println("月份全称:"+String.format("%tB", date));
System.out.println("星期几简称:" + String.format("%ta", date));
System.out.println("星期几全称:" + String.format("%tA", date));
System.out.println(String.format("二位年份:" + String.format("%ty", date)));
System.out.println(String.format("四位年份:" + String.format("%tY", date)));
System.out.println(String.format("月份:" + String.format("%tm", date)));
System.out.println(String.format("一个月中的某一天:" + String.format("%td", date)));
System.out.println(String.format("一年中的第几天:" + String.format("%tj", date)));
System.out.println(String.format("包含全部日期和时间信息:" + String.format("%tc", date)));
System.out.println(String.format("年-月-日格式,4位年份:" + String.format("%tF", date)));
System.out.println(String.format("年/月/日格式,2位年份:" + String.format("%tD", date)));
fotmatTime();
}
public static void fotmatTime(){
Date date = new Date();
System.out.println("2位数字的24小时制的小时(0-23):" + String.format("%tH", date));
System.out.println("2位数字的12小时制的小时(01-12):" + String.format("%tI", date));
System.out.println("2位数字的24小时制的小时(0-23):" + String.format("%tk", date));
System.out.println("2位数字的12小时制的小时(01-12):" + String.format("%tl", date));
System.out.println("2位数字的分钟:" + String.format("%tM", date));
System.out.println("2位数字的秒数:" + String.format("%tS", date));
System.out.println("3位数字的毫秒数:" + String.format("%tL", date));
System.out.println("9位数字的微妙数:" + String.format("%tN", date));
System.out.println("下午或上午标记:" + String.format("%tp", date));
System.out.println("时区的缩写形式:" + String.format("%tZ", date));
System.out.println("从1970-01-01 00:00:00到现在的秒数:" + String.format("%ts", date));
System.out.println("从1970-01-01 00:00:00到现在的毫秒数" + String.format("%tQ", date));
System.out.println("时:分:秒 PM(AM)格式,12小时制:" + String.format("%tr", date));
System.out.println("时:分 格式(24小时制):" + String.format("%tR", date));
System.out.println("时:分:秒 格式,24小时制:" + String.format("%tT", date));
}
}
输出结果:
月份简称:十一月
月份全称:十一月
星期几简称:星期五
星期几全称:星期五
二位年份:18
四位年份:2018
月份:11
一个月中的某一天:02
一年中的第几天:306
包含全部日期和时间信息:星期五 十一月 02 14:36:38 CST 2018
年-月-日格式,4位年份:2018-11-02
年/月/日格式,2位年份:11/02/18
2位数字的24小时制的小时(0-23):14
2位数字的12小时制的小时(01-12):02
2位数字的24小时制的小时(0-23):14
2位数字的12小时制的小时(01-12):2
2位数字的分钟:36
2位数字的秒数:38
3位数字的毫秒数:593
9位数字的微妙数:593000000
下午或上午标记:下午
时区的缩写形式:CST
从1970-01-01 00:00:00到现在的秒数:1541140598
从1970-01-01 00:00:00到现在的毫秒数1541140598593
时:分:秒 PM(AM)格式,12小时制:02:36:38 下午
时:分 格式(24小时制):14:36
时:分:秒 格式,24小时制:14:36:38
常规类型的格式化
public class A {
public static void main(String[] args) {
String str=null;
str=String.format("Hi,%s", "王力");
System.out.println(str);
str=String.format("Hi,%s:%s.%s", "王南","王力","王张");
System.out.println(str);
System.out.printf("字母a的大写是:%c %n", 'A');
System.out.printf("3>7的结果是:%b %n", 3>7);
System.out.printf("100的一半是:%d %n", 100/2);
System.out.printf("100的16进制数是:%x %n", 100);
System.out.printf("100的8进制数是:%o %n", 100);
System.out.printf("50元的书打8.5折扣是:%f 元%n", 50*0.85);
System.out.printf("上面价格的16进制数是:%a %n", 50*0.85);
System.out.printf("上面价格的指数表示:%e %n", 50*0.85);
System.out.printf("上面价格的指数和浮点数结果的长度较短的是:%g %n", 50*0.85);
System.out.printf("上面的折扣是%d%% %n", 85);
System.out.printf("字母A的散列码是:%h %n", 'A');
}
}
输出结果
Hi,王力
Hi,王南:王力.王张
字母a的大写是:A
3>7的结果是:false
100的一半是:50
100的16进制数是:64
100的8进制数是:144
50元的书打8.5折扣是:42.500000 元
上面价格的16进制数是:0x1.54p5
上面价格的指数表示:4.250000e+01
上面价格的指数和浮点数结果的长度较短的是:42.5000
上面的折扣是85%
字母A的散列码是:41
格式转换标记
代码
public class FormatTest02 {
public static void main(String[] args) {
System.out.println("为数字添加符号:"+String.format("%+d", 15));
System.out.println("数字前面补零:"+String.format("%04d", 15));
System.out.println("添加指定数量的空格:"+String.format("%d %d", 15,16));
System.out.println("以,对数字分组:"+String.format("%,f", 9999.990000));
}
输出结果
为数字添加符号:+15
数字前面补零:0015
添加指定数量的空格:15 16
以,对数字分组:9,999.990000