Java中日期的解析与格式化
2019独角兽企业重金招聘Python工程师标准>>>
文章图片
本文以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
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募