Java中日期的解析与格式化

2019独角兽企业重金招聘Python工程师标准>>> 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);


【Java中日期的解析与格式化】完整的程序代码如下:

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

    推荐阅读