`

日期操作类DateFormat和SimpleDateFormat

    博客分类:
  • JAVA
 
阅读更多

1.DateFormat类

此类是一个日期的格式化类,专门格式化日期的操作,因为java.util.Date类本身就已经包含了完整的日期,所以只需要将些日期按照一些好的格式格式化一下显示就好了.观察DateFormat类的定义:此类是定义在java.test包中的。public abstract class DateFormat extends Format,但是定义上可以发现,此类是一个抽象类,按照以住的思路,直接使用其子类实例化即可,但是DateFormat 类本身的内部提供了可以直接为其实例化的操作。

 

得到日期的DateFormat对象:public static final DateFormat getDateInstance()

得到日期时间的DateFormat对象:public static final DateFormat getDateTimeInstance()

直接使用DateFormat类完成Date类的转换功能:public final String format(Date date)

美式日期格式

import java.text.DateFormat ;
import java.util.Date ;
public class DateDemo03{
	public static void main(String args[]){
		DateFormat df1 = null ;		// 声明一个DateFormat
		DateFormat df2 = null ;		// 声明一个DateFormat
		df1 = DateFormat.getDateInstance() ;	// 得到日期的DateFormat对象
		df2 = DateFormat.getDateTimeInstance() ;	// 得到日期时间的DateFormat对象
		System.out.println("DATE:" + df1.format(new Date())) ; // 按照日期格式化
		System.out.println("DATETIME:" + df2.format(new Date())) ;	 // 按照日期时间格式化

	}
}

 输出结果:

DATE:2013-3-11
DATETIME:2013-3-11 16:59:09

 

中式日期格式(通过Locale对象指定要显示的区域,指定的区域是中国)

import java.text.DateFormat ;
import java.util.Date ;
import java.util.Locale ;
public class DateDemo{
	public static void main(String args[]){
		DateFormat df1 = null ;		// 声明一个DateFormat
		DateFormat df2 = null ;		// 声明一个DateFormat
		df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN")) ;	// 得到日期的DateFormat对象
		df2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN")) ;	// 得到日期时间的DateFormat对象
		System.out.println("DATE:" + df1.format(new Date())) ; // 按照日期格式化
		System.out.println("DATETIME:" + df2.format(new Date())) ;	 // 按照日期时间格式化

	}
}

 输出结果:

DATE:2013年3月11日
DATETIME:2013年3月11日 下午05时01分15秒 CST

 

2.SimpleDateFormat类


此类的功能是完成日期的显示格式化的,例如,在开发中,可以会将一种日期格式变为另外一种日期格式,如下所示:

原始日期:2008-10-19 10:11:30.345

转换捕日期:2008 年 10 月 19 日 10 点 11 分 30 秒 345 毫秒

但是以上的两个日期中日期的数字是完全一样的,唯一不同的是日期的显示格式不同,所以要想实现这样的转换功能就必须依靠SimpleDateFormat类。

如果要想实现转换,则必须首先准备好一个模板,通过此模板进行日期数字的提取工作。


在SimpleDateFormat类使用的时候,必须注意的是在构造对象时要传入匹配的模板

构造方法:public SimpleDateFormat(String pattern)

转换:public Date parse(String source)throws ParseException -->此时取得的是全部时间数。

格式化:public final String Format(Date date) -->将时间重新格式化成字符串显示。

 

import java.text.* ;
import java.util.* ;
public class DateDemo{
	public static void main(String args[]){
		String strDate = "2008-10-19 10:11:30.345" ;
		
		// 准备第一个模板,从字符串中提取出日期数字
		String pat1 = "yyyy-MM-dd HH:mm:ss.SSS" ;
		
		// 准备第二个模板,将提取后的日期数字变为指定的格式
		String pat2 = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒" ;
		
		SimpleDateFormat sdf1 = new SimpleDateFormat(pat1) ;		// 实例化模板对象
		SimpleDateFormat sdf2 = new SimpleDateFormat(pat2) ;		// 实例化模板对象
		Date d = null ;
		try{
			d = sdf1.parse(strDate) ;	// 将给定的字符串中的日期提取出来
		}catch(Exception e){			// 如果提供的字符串格式有错误,则进行异常处理
			e.printStackTrace() ;		// 打印异常信息
		}
		System.out.println(sdf2.format(d)) ;	// 将日期变为新的格式
	}
}

 输出结果:

2008年10月19日 10时11分30秒345毫秒

 

总结:

 

1.DateFormat 可以直接使用,但其本身是一个抽象类,可以根据Locate指定的区域不同得到不同的日期时间显示效果

2.SimpleDateFormat 类是DateFormat 类的子类,一般情况下来讲 DateFormat 类很少会直接使用。而都使用SimpleDateFormat 类完成。

 

分享到:
评论

相关推荐

    日期操作类(DateFormat、SimpleDateFormat)

    NULL 博文链接:https://chaoyi.iteye.com/blog/2082317

    java常用工具类的使用

    在Java程序设计过程中,对应日期和时间的格式化,还有一个简单的格式化方式,就是java.text.SimpleDateFormat,该类中用字符串指定日期和时间的格式,字符串中的字符称为模式字符,模式字符区分大小写。常见的模式...

    Java开发详解.zip

    031106_【第11章:Java常用类库】_日期操作类(DateFormat、SimpleDateFormat)笔记.pdf 031107_〖第11章:Java常用类库〗_实例操作:取得当前日期笔记.pdf 031108_【第11章:Java常用类库】_Math与Random类笔记.pdf...

    JAVA基础课程讲义

    DateFormat类和SimpleDateFormat类 125 Calendar日历类 126 可视化日历的编写 128 Math类 131 File类 132 File类的基本用法 132 树状结构展现文件结构 133 枚举 133 上机作业 135 第七章 容器(Collection) 136 容器...

    Android静默安装常用工具类

    1、HttpUtils Http网络工具类,主要包括...getTime(long timeInMillis, SimpleDateFormat dateFormat) 将long转换为固定格式时间字符串 源码可见TimeUtils.java,更多方法及更详细参数介绍可见TimeUtils Api Guide。

    Java范例开发大全 (源程序)

     实例194 使用SimpleDateFormat类获取系统的当前时间 329  实例195 显示某年某月某一周的信息 330  实例196 显示某年某月的信息 332  实例197 时间的设置与获取 334  实例198 万年历(农历和阳历的互换) ...

    java范例开发大全(pdf&源码)

    实例194 使用SimpleDateFormat类获取系统的当前时间 329 实例195 显示某年某月某一周的信息 330 实例196 显示某年某月的信息 332 实例197 时间的设置与获取 334 实例198 万年历(农历和阳历的互换) 337 11.4 ...

    java范例开发大全源代码

     实例194 使用SimpleDateFormat类获取系统的当前时间 329  实例195 显示某年某月某一周的信息 330  实例196 显示某年某月的信息 332  实例197 时间的设置与获取 334  实例198 万年历(农历和阳历的互换...

    java范例开发大全

    实例194 使用SimpleDateFormat类获取系统的当前时间 329 实例195 显示某年某月某一周的信息 330 实例196 显示某年某月的信息 332 实例197 时间的设置与获取 334 实例198 万年历(农历和阳历的互换) 337 11.4 ...

    Java范例开发大全(全书源程序)

    实例194 使用SimpleDateFormat类获取系统的当前时间 329 实例195 显示某年某月某一周的信息 330 实例196 显示某年某月的信息 332 实例197 时间的设置与获取 334 实例198 万年历(农历和阳历的互换) 337 11.4 ...

Global site tag (gtag.js) - Google Analytics