java tostring 格式化日期_Java 中字符串的格式化 -- Format

引言

字符串的格式化相当于将字符串按照指定的格式进行toString(),一般有两种形式://使用指定的格式字符串和参数返回一个格式化字符串。

public static String format(String format, Object... args) {

return new Formatter().format(format, args).toString();

}//使用指定的语言环境、格式字符串和参数返回一个格式化字符串。

public static String format(Locale l, String format, Object... args) {

return new Formatter(l).format(format, args).toString();

}

数据转化符数据类型说明转化形式%s字符串类型"string"

%c字符类型'A'

%b布尔类型true/false

%o整数类型(八进制)111

%d整数类型(十进制)17

%x整数类型(十六进制)11

%f浮点类型(基本)66.66

%e指数类型1.11e+5

%a浮点类型(十六进制)FF.22

%h散列码11

%%百分比类型17%

%n换行符

%tx日期与时间类型测试public class Format01 {

public static void main(String[] args) {

System.out.println(String.format("字符串:%s", "String"));

System.out.println(String.format("字符:%c", 'M'));

System.out.println(String.format("布尔类型:%b", 'M'>'A'));

System.out.println(String.format("八进制整数类型:%o", 17));

System.out.println(String.format("十进制整数类型:%d", 17));

System.out.println(String.format("十六进制整数类型:%x", 17));

System.out.println(String.format("基本浮点类型:%f", 99.1));

System.out.println(String.format("指数类型:%e", 100.111111111));

System.out.println(String.format("十六进制浮点类型:%a", 17.111111));

System.out.println(String.format("散列码:%h", 17));

System.out.println(String.format("百分比类型:17%%"));

System.out.print(String.format("换行符:%n", 17));

}

}输出字符串:String

字符:M

布尔类型:true

八进制整数类型:21

十进制整数类型:17

十六进制整数类型:11

基本浮点类型:99.100000

指数类型:1.001111e+02

十六进制浮点类型:0x1.11c71c53f39d2p4

散列码:11

百分比类型:17%

换行符:

字符串的格式化标志说明示例输出+为正数添加符号("正数:%+f",11.11))正数:+11.110000

-左对齐("左对齐:%-5d",11)左对齐:11

0整数前面补0("数字前面补0:%04d",11)数字前面补0:0011

,对数字分组("按,对数字分组:%,d",111111111)按,对数字分组:111,111,111

空格数字前面补空格("空格:% 4d",11)空格: 11

(包含负数("使用括号包含负数:%(f",-11.11)使用括号包含负数:(11.110000)

#浮点数包含小数,八进制包含0,十六进制包含0x

$被格式化的参数索引("被格式化的参数索引:%1$d,%2$s",11,"111.1111111")被格式化的参数索引:11,111.1111111测试public class formatString {

public static void main(String[] args) {

System.out.println(String.format("正数:%+f",11.11));

System.out.println(String.format("右对齐:%+10d",11));

System.out.println(String.format("左对齐:%-5d",11));

System.out.println(String.format("数字前面补0:%044d",11));

System.out.println(String.format("空格:% 4d",11));

System.out.println(String.format("按,对数字分组:%,d",111111111));

System.out.println(String.format("使用括号包含负数:%(f",-11.11));

System.out.println(String.format("浮点数包含小数点:%#f",11.1));

System.out.println(String.format("八进制包含0:%#o",11));

System.out.println(String.format("十六进制包含0x:%#x",11));

System.out.println(String.format("格式化前描述的参数:%f转化后%<3.3f",111.1111111));

System.out.println(String.format("被格式化的参数索引:%1$d,%2$s",11,"111.1111111"));

}

}输出正数:+11.110000

右对齐: +11

左对齐:11

数字前面补0:00000000000000000000000000000000000000000011

空格: 11

按,对数字分组:111,111,111

使用括号包含负数:(11.110000)

浮点数包含小数点:11.100000

八进制包含0:013

十六进制包含0x:0xb

格式化前描述的参数:111.111111转化后111.111

被格式化的参数索引:11,111.1111111

日期的格式化转换符说明示例c全部时间日期星期四 十二月 17 13:11:35 CST 2020

F年-月-日格式2020-12-17

D月/日/年格式12/17/20

rHH:MM:SS PM格式(12时制)01:11:35 下午

THH:MM:SS格式(24时制)13:11:35

RHH:MM格式(24时制)13:11测试public class formatDate {

public static void main(String[] args) {

Date date = new Date();

System.out.println(String.format("全部时间日期:%tc",date));

System.out.println(String.format("年-月-日格式:%tF",date));

System.out.println(String.format("月/日/年格式:%tD",date));

System.out.println(String.format("HH:MM:SS PM格式(12时制):%tr",date));

System.out.println(String.format("HH:MM:SS格式(24时制):%tT",date));

System.out.println(String.format("HH:MM格式(24时制):%tR",date));

}

}输出全部时间日期:星期四 十二月 17 13:21:35 CST 2020

年-月-日格式:2020-12-17

月/日/年格式:12/17/20

HH:MM:SS PM格式(12时制):01:21:35 下午

HH:MM:SS格式(24时制):13:21:35

HH:MM格式(24时制):13:21

时间的格式化转换符说明示例H2位数字24时制的小时(不足2位前面补0)13

l2位数字12时制的小时1

k2位数字24时制的小时13

M2位数字的分钟33

L3位数字的毫秒745

S2位数字的秒33

N9位数字的毫秒数745000000

pLocale.US,\"小写字母的上午或下午标记(英)下午

Z时区缩写字符串CST

z相对于GMT的RFC822时区的偏移量+0800

s1970-1-1 00:00:00 到现在所经过的秒数1608183213

Q1970-1-1 00:00:00 到现在所经过的毫秒数1608183213745测试public class formatTime {

public static void main(String[] args) {

Date date = new Date();

System.out.println(String.format("2位数字24时制的小时(不足2位前面补0):%tH", date));

System.out.println(String.format("2位数字12时制的小时:%tl", date));

System.out.println(String.format("2位数字24时制的小时:%tk", date));

System.out.println(String.format("2位数字的分钟:%tM", date));

System.out.println(String.format("3位数字的毫秒:%tL", date));

System.out.println(String.format("2位数字的秒:%tS", date));

System.out.println(String.format("9位数字的毫秒数:%tN", date));

System.out.println(String.format("时区缩写字符串:%tZ", date));

System.out.println(String.format("相对于GMT的RFC822时区的偏移量:%tz", date));

System.out.println(String.format("Locale.US,\"小写字母的上午或下午标记(英):%tp", date));

System.out.println(String.format("1970-1-1 00:00:00 到现在所经过的秒数:%ts", date));

System.out.println(String.format("1970-1-1 00:00:00 到现在所经过的毫秒数:%tQ", date));

}

}输出2位数字24时制的小时(不足2位前面补0):13

2位数字12时制的小时:1

2位数字24时制的小时:13

2位数字的分钟:33

3位数字的毫秒:745

2位数字的秒:33

9位数字的毫秒数:745000000

时区缩写字符串:CST

相对于GMT的RFC822时区的偏移量:+0800

Locale.US,"小写字母的上午或下午标记(英):下午

1970-1-1 00:00:00 到现在所经过的秒数:1608183213

1970-1-1 00:00:00 到现在所经过的毫秒数:1608183213745

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值