java simpledateformat星期_Java中随心所欲格式化时间 SimpleDateFormat

SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式.

日期和时间模式

日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在分析时与输入字符串进行匹配。

定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):字母 日期或时间元素 表示 示例

GEra 标志符TextAD

y年Year1996; 96

M年中的月份MonthJuly; Jul; 07

w年中的周数Number27

W月份中的周数Number2

D年中的天数Number189

d月份中的天数Number10

F月份中的星期Number2

E星期中的天数TextTuesday; Tue

aAm/pm 标记TextPM

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

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

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

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

m小时中的分钟数Number30

s分钟中的秒数Number55

S毫秒数Number978

z时区General time zonePacific Standard Time; PST; GMT-08:00

Z时区RFC 822 time zone-0800以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56

日期和时间模式结果

"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

SimpleDateFormat 在编程中的实际应用实例:

(一)格式化(日期 -> 文本)

一般地,中文中常用的  日期 时间如:20070719 20:29:30

SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd hh:mm:ss");

System.out.println("Date to String "+formater.format(new Date()));

相近的常用形式还有 yyMMdd hh:mm:ss  yyyy-MM-dd hh:mm:ss  dd-MM-yyyy hh:mm:ss

但是值得注意是:这种格式(19JUL07 )及其相近的形式,就有点小技巧  19JUL07

SimpleDateFormat formater = new SimpleDateFormat("ddMMMyy",,new Locale("US"))

System.out.println("Date to String "+formater.format(new Date()).toUpperCase());

由于是英文的所以应该使用 Locale 对象参数,否则就使用的是默认本地 Locale 。

(二)分析(文本 -> 日期)

一般地,想要什么要的格式的时间就就使用什么形式的日期时间模式和文本参数,例如 2007-7-19 则返回一个java.util.Date型的时间对象,时分秒都补0

6387558_1.gifformater=newSimpleDateFormat("yyyyMMMdd",newLocale("US"));

6387558_2.giftry{

6387558_3.gif   System.out.println("String to Date"+formater.parse("2007sep01"));

6387558_2.gif  }catch(ParseException e){

6387558_3.gif   e.printStackTrace();

6387558_4.gif  }

特别地,

6387558_1.gifformater=newSimpleDateFormat("yyyyMMMdd",newLocale("US"));

6387558_2.giftry{

6387558_3.gif   System.out.println("String to Date"+formater.parse("2007sep01"));

6387558_2.gif  }catch(ParseException e){

6387558_3.gif   e.printStackTrace();

6387558_4.gif  }

它也返回一个java.util.Date型的日期对象,时分秒都补0

(三)文本 - > Timestamp  、日期 -> Timestamp

6387558_1.gifTimestamp t ;

6387558_1.gif  SimpleDateFormat format=newSimpleDateFormat("yyyy-MM-dd hh:mm:ss");

6387558_2.giftry{

6387558_3.gif   t=newTimestamp(format.parse("2007-07-19 00:00:00").getTime());

6387558_2.gif  }catch(ParseException e){

6387558_3.gif   e.printStackTrace();

6387558_4.gif  }6387558_1.gif

6387558_1.gif Timestamp t ;

6387558_1.gif  SimpleDateFormat format=newSimpleDateFormat("yyyy-MM-dd hh:mm:ss");

6387558_1.gif  t=newTimestamp(newDate().getTime());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值