Java中格式化时间

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

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

定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):
[img]http://dl.iteye.com/upload/attachment/0068/5670/6a92239e-c042-3fb8-a784-a757a22930bd.png[/img]

以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间为美国太平洋时区的本地时间 2001-07-04 12:08:56
[img]http://dl.iteye.com/upload/attachment/0068/5672/e0ba8032-de68-377f-91ca-9c7faa8268fb.png[/img]

SimpleDateFormat 在编程中的实际应用实例:
(一)格式化(日期 -> 文本)
(1)一般地,中文中常用的日期时间如:20070719 20:29:30
SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd hh:mm:ss");
System.out.println("Date to String "+formater.format(new Date()));

(2)相近的常用形式还有 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
formater = new SimpleDateFormat("yyyyMMMdd",new Locale("US"));
try {
System.out.println("String to Date "+formater.parse("2007sep01"));
} catch (ParseException e) {
e.printStackTrace();
}

特别地,下面代码它也返回一个java.util.Date型的日期对象,时分秒都补0
formater = new SimpleDateFormat("yyyyMMMdd",new Locale("US"));
try {
System.out.println("String to Date "+formater.parse("2007sep01"));
} catch (ParseException e) {
e.printStackTrace();
}

(三)文本 - > Timestamp 、日期 -> Timestamp
Timestamp t;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
t = new Timestamp(format.parse("2007-07-19 00:00:00").getTime());
} catch (ParseException e) {
e.printStackTrace();
}

Timestamp t ;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
t = new Timestamp(new Date().getTime());

eg: "Wed May 23 17:9:34 CST 2012" to yyyy-MM-dd hh:mm:ss
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy", Locale.ENGLISH);
Date d = sdf.parse("Wed May 23 17:9:34 CST 2012");
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(d));
输出结果 --> 2012-05-23 17:09:34


本文来源:http://blog.csdn.net/Morecans/archive/2007/07/19/1699451.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值