Java中日期的解析与格式化

        本文以CST时间的解析和格式化为例:将CST时间的字符串格式化成某个指定模板的时间格式。该CST时间字符串为"Tue Jul 31 13:57:33 CST 2012",可以 使用 java.text.SimpleDateFormat类来完成。

1、使用"yyyy-MM-dd HH:mm:ss"模板字符串,构造出第一个SimpleDateFormat类对象sdf1。

DateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2、使用"EEE MMM dd HH:mm:ss 'CST' yyyy"模板字符串,构造出第二个 SimpleDateFormat类对象sdf2。若是某个国家/地区的CST时间,则附带上一个Locale对象。这里以Locale.US为例。
DateFormat sdf2 = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'CST' yyyy", Locale.US);
3、将CST时间字符串解析成 Locale.US日期
Date date = sdf2.parse("Tue Jul 31 13:57:33 CST 2012");
 4、格式化date对象为指定模板的时间格式
sdf1.format(date);

完整的程序代码如下:

public class Test {
	public static void main(String[] args) {
		DateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		DateFormat sdf2 = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'CST' yyyy", Locale.US);
		try {
			Date date = sdf2.parse("Tue Jul 31 13:57:33 CST 2012");
			System.out.println(sdf1.format(date));
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}

输出结果为:2012-07-31 13:57:33

PS:可以将这些操作封装成工具类里的静态方法,以便复用。 如:   其中 CST_DATE_FORMAT是一个值为 "EEE MMM dd HH:mm:ss 'CST' yyyy"的静态常量。

public static String formatCST(String cstString, String toPattern, Locale locale) {
		if (isNull(cstString, toPattern)) {
			return null;
		}
		
		SimpleDateFormat sdf1 = new SimpleDateFormat(CST_DATE_FORMAT, locale);
		SimpleDateFormat sdf2 = new SimpleDateFormat(toPattern);
		
		try {
			return sdf2.format(sdf1.parse(cstString.trim()));
		} catch (ParseException e) {
			return null;
		}
	}

转载于:https://my.oschina.net/belinwu/blog/70009

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值