格式化字符串


1.日期格式化:


转换符

s说明

s示例

%te

一月中的某一天(1-31)

6

%tb

指定语言环境的月份简称

Feb(英文),二月(中文)

%tB

指定语言环境的月份全称

February(英文),二月(中文)

%tA

指定环境下星期几的全称

Monday(英文),星期一(中文)

%ta

指定语言环境下星期几的简称

Mon(英文),星期一(中文)

%tc

包括全部日期和时间信息

x星期二 三月25 13:37:22 CST 2008

%tY

4位年份

2008

%tj

一年中的第几天(001-366)

085

%tm

月份

03

%td

一个月中的第几天

01-31

%ty

2位年份

08

public class nn {
	public static void main(String[] args)
	{
		GregorianCalendar calendar=new GregorianCalendar();// 创建日期对象
		String message=String.format("小明的生日:%1$tY年%1$tm月%1$te日",calendar);
		System.out.println(message);
	}
}


2.时间格式化





        使用format()方法对时间进行格式化是,会用到时间格式化转换符。时间格式化转换符要比日期转换符个多,更精确,可以将时间格式化为时、分、秒、毫秒。常用的时间格式化转换符如下:



转换符

s说明

s示例

%tH

2位数字24时制的小时(00-23)

14

%tI

2位数字12时制的小时(01-12)

05

%tk

2位数字24时制的小时(0-23)

5

%td

2位数字12时制的小时(1-12)

10

%tM

2位数字的分钟(00-59)

12

%tS

2位数字的秒数(00-60)

5

%tL

3位数字的毫秒数(000-999)

920

%tN

9位数字的微秒数(000000000-999999999)

062000000

%tp

指定语言环境下上午或下午标记

x下午(中文)、pm(英文)

%tz

相对于 GMT RFC 82格式的数字时区偏移量

+0800

%tZ

时区缩写形式的字符串

CST

%ts

1970-01-01 00:00:00到现在经过的秒数

1206426646

%tQ

1970-01-01 00:00:00到现在经过的毫秒数

1206426738421

public class nn {
	public static void main(String[] args)
	{
		String message=String.format("当前时间:%1$tI 时%1$tM 分%1$tS 秒",Calendar.getInstance());
		System.out.println(message);
	}
}

运行结果如下:




android 格式化 字符串时间 字符串日期格式化_日期格式化



3.日期时间组合格式化:


        因为日期和时间通常是同时出现,所以格式化转换符还定义了各种日期和时间组合的格式,常用的有以下几种:

转换符

s说明

s示例

%tF

"年-月-日"格式(4位年份)

2008-3-25

%tD

"年/月/日"格式(2位年份)

03/25/2008

%tc

全部日期和时间

x星期二 三月 25 12:20:00 CST 2008

%er

"时:分:秒: PM(AM)"格式(12时制)

03:22:06 下午

%tT

"时:分:秒"格式(24时制)

15:23:53

%tR

"时:分"格式(24时制)

15:23

public class nn {
	public static void main(String[] args)
	{
		String message=String.format("当前时间:%tT",Calendar.getInstance());
		System.out.println(message);
	}
}

运行结果如下:

android 格式化 字符串时间 字符串日期格式化_android 格式化 字符串时间_02


4.常规类型格式化:

        在程序设计过程中,经常需要对常规类型是数据进行格式化,例如格式化为整数,格式化为科学计数表示等。在Java中可以使用常规类型的格式化转换符来实现。如下是常规类型格式化转换符:

转换符

s说明

s示例

%b、%B

结果格式化为布尔型

true

%h、%H

结果被格式化为散列码

A05A5198

%s、%S

结果被格式化为字符串类型

"abcd"

%c、%C

结果被格式化为字符类型

'a'

%d

j结果被格式化为十进制整数

40

%o

结果被格式化为八进制整数

11

%x、%X

j结果被格式化为十六进制整数

4b1

%e

结果被格式化为计算机科学计数法表示的十进制浮点值

1.700000e+01

%a

结果被格式化为带有效位数和指数的十六进制浮点值

0X1.C000000000001P4

%n

结果为特定于平台的行分隔符

 

%%

结果为字面值“%”

%


public class nn {
	public static void main(String[] args)
	{
		System.out.println(String.format("%1$d的八进制表示:%1$o",99));
		System.out.println(String.format("%1$d的十六进制表示:%1$x",99));
	}
}

运行结果如下:

android 格式化 字符串时间 字符串日期格式化_字符串时间日期格式化_03