首页 > Java > 正文

java日期格式化、解析

2016-09-23 Java 552 ℃ 0 评论

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

    日期的格式化器普用的是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();
		}
	}

}

    上述程序运行结果如下:

11.png

猜你喜欢

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

请填写验证码
日历
«   2018年11月   »
1234
567891011
12131415161718
19202122232425
2627282930
网站分类
最近发表
标签列表
站点信息
  • 文章总数:154
  • 页面总数:1
  • 分类总数:11
  • 标签总数:171
  • 评论总数:4
  • 浏览总数:100759