java date dateformat_java中Date与DateFormat的格式输出

一、DateFormat

java.text.DateFormat

使用 getDateInstance 来获取该国家/地区的标准日期格式。另外还提供了一些其他静态工厂方法。使用 getTimeInstance 可获取该国家/地区的时间格式。使用 getDateTimeInstance 可获取日期和时间格式。可以将不同选项传入这些工厂方法,以控制结果的长度(从 SHORT 到 MEDIUM 到 LONG 再到 FULL)。确切的结果取决于语言环境,但是通常:

SHORT 完全为数字,如 12.13.52 或 3:30pm

MEDIUM 较长,如 Jan 12, 1952

LONG 更长,如 January 12, 1952 或 3:30:32pm

FULL 是完全指定,如 Tuesday、April 12、1952 AD 或 3:30:42pm PST。

如果愿意,还可以在格式上设置时区。如果想对格式化或解析施加更多的控制(或者给予用户更多的控制),可以尝试将从工厂方法所获取的 DateFormat 强制转换为 SimpleDateFormat。这适用于大多数国家/地区;只是要记住将其放入一个 try 代码块中,以防遇到特殊的格式。

使用当地时区

Date date = newDate();//日期格式,精确到日 2017-4-16

DateFormat df1 =DateFormat.getDateInstance();

System.out.println(df1.format(date));//可以精确到秒 2017-4-16 12:43:37

DateFormat df2 =DateFormat.getDateTimeInstance();

System.out.println(df2.format(date));//只显示出时时分秒 12:43:37

DateFormat df3 =DateFormat.getTimeInstance();

System.out.println(df3.format(date));//显示日期,周,上下午,时间(精确到秒)//2017年4月16日 星期日 下午12时43分37秒 CST

DateFormat df4 =DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);

System.out.println(df4.format(date));//显示日期,上下午,时间(精确到秒)//2017年4月16日 下午12时43分37秒

DateFormat df5 =DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);

System.out.println(df5.format(date));//显示日期,上下午,时间(精确到秒)//2017年4月16日 下午12时43分37秒

DateFormat df5_1 =DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.CHINA);

System.out.println(df5_1.format(date));//显示日期,上下午,时间(精确到分) 17-4-16 下午12:43

DateFormat df6 =DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);

System.out.println(df6.format(date));//显示日期,时间(精确到秒) 2017-4-16 12:43:37

DateFormat df7 =DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);

System.out.println(df7.format(date));

二、 SimpleDateFormat

java.text.SimpleDateFormat

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

字母日期或时间元素表示示例

G

Era 标志符

Text

AD

y

Year

1996; 96

M

年中的月份

Month

July; Jul; 07

w

年中的周数

Number

27

W

月份中的周数

Number

2

D

年中的天数

Number

189

d

月份中的天数

Number

10

F

月份中的星期

Number

2

E

星期中的天数

Text

Tuesday; Tue

a

Am/pm 标记

Text

PM

H

一天中的小时数(0-23)

Number

0

k

一天中的小时数(1-24)

Number

24

K

am/pm 中的小时数(0-11)

Number

0

h

am/pm 中的小时数(1-12)

Number

12

m

小时中的分钟数

Number

30

s

分钟中的秒数

Number

55

S

毫秒数

Number

978

z

时区

General time zone

Pacific Standard Time; PST; GMT-08:00

Z

时区

RFC 822 time zone

-0800

实例参数

日期和时间模式结果

"yyyy.MM.dd G 'at' HH:mm:ss z"

2001.07.04 AD at 12:08:56 PDT

"EEE, MMM d, ''yy"

Wed, Jul 4, '01

"h:mm a"

12:08 PM

"hh 'o''clock' a, zzzz"

12 o'clock PM, Pacific Daylight Time

"K:mm a, z"

0:08 PM, PDT

"yyyyy.MMMMM.dd GGG hh:mm aaa"

02001.July.04 AD 12:08 PM

"EEE, d MMM yyyy HH:mm:ss Z"

Wed, 4 Jul 2001 12:08:56 -0700

"yyMMddHHmmssZ"

010704120856-0700

"yyyy-MM-dd'T'HH:mm:ss.SSSZ"

2001-07-04T12:08:56.235-0700

代码结果

Date d = newDate();/*h 1-12输出格式: 2017-04-16 01:01:22*/DateFormat format1= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

String s=format1.format(d);

System.out.println(s);/*H 0-23输出格式:2017-04-16 13:01:22*/DateFormat format2= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

s=format2.format(d);

System.out.println(s);/*K 0-11输出格式:2017-04-16 01:01:22*/DateFormat format3= new SimpleDateFormat("yyyy-MM-dd KK:mm:ss");

s=format3.format(d);

System.out.println(s);/*k 1-24输出格式: 2017-04-16 13:01:22*/DateFormat format4= new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");

s=format4.format(d);

System.out.println(s);/*输出格式: 20170416010122*/DateFormat format5= new SimpleDateFormat("yyyyMMddhhmmss");

s=format5.format(d);

System.out.println(s);

常用方法

parse

public Date parse(String texts)

解析字符串的文本,生成 Date。

此方法试图解析文本。如果解析成功,并返回解析得到的日期。更新后的 pos 可以用来指示下次调用此方法的起始点。如果发生错误,并且返回 null。参数:text - 应该解析其中一部分的 String。返回:从字符串进行解析的 Date。如果发生错误,则返回 null。抛出:另请参见:

parse

解析字符串的文本,生成 Date。

此方法试图解析从 pos 给定的索引处开始的文本。如果解析成功,则将 pos 的索引更新为所用最后一个字符后面的索引(不必对直到字符串结尾的所有字符进行解析),并返回解析得到的日期。更新后的 pos 可以用来指示下次调用此方法的起始点。如果发生错误,则不更改 pos 的索引,并将 pos 的错误索引设置为发生错误处的字符索引,并且返回 null。参数:text - 应该解析其中一部分的 String。pos - 具有以上所述的索引和错误索引信息的 ParsePosition 对象。返回:从字符串进行解析的 Date。如果发生错误,则返回 null。抛出:另请参见:

format

public final String format(Date date)

将一个 Date 格式化为日期/时间字符串。参数:date - 要格式化为时间字符串的时间值。返回:已格式化的时间字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值