java 日期格式化详解,java日期格式化、解析

今天移植别人的通用工具类,涉及到了日期的格式化、解析,学习结果记录如下。

日期的格式化器普用的是SimpleDateFormat,它继承了了DateFormat。SimpleDateFormat为用户提供了更多的控制功能,更灵活。

但是有两点需要注意:使用SimpleDateFormat解析字符串日期的时候要放入一个try代码块,以防遇到特殊的日期格式抛出异常;获取SimpleDateFormat实例的时候最好使用DateFormat的getTimeInstance、getDateInstance 或getDateTimeInstance类方法来获取。因为new一个SimpleDateFormat不适用于所有的地区,在国际化的时候会遇到问题,当然这个问题很难遇到了,但是还是小心为好。

总结一下SimpleDateFormat的用法其实很简单:建立格式器(SimpleDateFormat)DateFormat.getDateInstance()--->添加格式applyPattern(pattern)--->格式化、解析日期format(Date)、parse(String)。

代码如下:/**

* 格式化、解析日期测试类

*/

package com.date_test;

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

* @author wkupaochuan

* @time Jun 14, 2012

* @version V 1.0

*/

public class DateFormat_test {

public static void main (String agrs[])

{

//获取当前时间

Date dNow = new Date();

//建立日期格式化器,这里是获取的默认语言环境、默认格式的格式器

SimpleDateFormat df = (SimpleDateFormat)DateFormat.getDateInstance();

/*格式化日期,并输出*/

//最普遍的格式

df.applyPattern("yyyy-MM-dd HH:mm:ss");

System.out.println("最普遍的格式:  " + df.format(dNow));

//年份俭省格式

df.applyPattern("yy-MM-dd HH:mm:ss");

System.out.println("年份俭省格式:  " + df.format(dNow));

//省略年份和具体时间格式

df.applyPattern("MM-dd");

System.out.println("省略年份和具体时间格式:  " + df.format(dNow));

//采用12小时制格式

df.applyPattern("yyyy-MM-dd hh:mm:ss");

System.out.println("采用12小时制格式:  " + df.format(dNow));

//省去个位数时前面的0格式

df.applyPattern("yyyy-m-dd h:mm:ss");

System.out.println("省去个位数时前面的0格式:  " + df.format(dNow));

//更为自由的格式,嵌入字符、换行等,字符要用''包含

df.applyPattern("yyyy'年'M'月'd'日'\nh'时'm'分'mm'秒'");

System.out.println("更为自由的格式,嵌入字符、换行等:\n"

+ df.format(dNow) + "\n\n\n");

/*解析字符串日期*/

String dTest = "2012-09-10";

//这里的异常处理是必须、必要的,防止出现特殊格式的字符串日期

try

{

/*将字符串转化为Date类型时,要注意df的格式与字符串日期的格式保持一致,

* 否则抛出异常

* */

df.applyPattern("yyyy-MM-dd");

Date ddTest = df.parse(dTest);

//这里输出的日期仍然是默认格式,而非之前设定的格式

System.out.println(ddTest);

}

catch (ParseException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

上述程序运行结果如下:

95e08bc1dd476f4bca932c4b2c9ad060.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值