博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
日期操作类
阅读量:5134 次
发布时间:2019-06-13

本文共 8599 字,大约阅读时间需要 28 分钟。

主要使用java.util包中的Date、Calendar以及java.text包中的SimpleDateFormat.

 

Date类

//=================================================// File Name       :	Date_demo//------------------------------------------------------------------------------// Author          :	Commonimport java.util.Date;//主类//Function        : 	Date_demopublic class Date_demo {	public static void main(String[] args) {		// TODO 自动生成的方法存根		Date date = new Date();										//实例化Date类对象		System.out.println("当前日期为:"+date);		//输出日期	}}

 

Calendar类

//=================================================// File Name       :	Date_demo//------------------------------------------------------------------------------// Author          :	Commonimport java.util.Calendar;import java.util.GregorianCalendar;//主类//Function        : 	Date_demopublic class Calendar_demo {	public static void main(String[] args) {		// TODO 自动生成的方法存根		Calendar calendar = null;							//声明一个Calendar对象		calendar = new GregorianCalendar();		//通过子类为其实例化		System.out.println("年:"+calendar.get(Calendar.YEAR));		System.out.println("月:"+(calendar.get(Calendar.MONTH)+1));		System.out.println("日:"+calendar.get(Calendar.DAY_OF_MONTH));		System.out.println("时:"+calendar.get(Calendar.HOUR_OF_DAY));		System.out.println("分:"+calendar.get(Calendar.MINUTE));		System.out.println("秒:"+calendar.get(Calendar.SECOND));		System.out.println("毫秒:"+calendar.get(Calendar.MILLISECOND));	}}

输出

年:2017月:5日:17时:20分:56秒:8毫秒:427

 

DateFormat类

对java.util.Date进行格式化操作,为了符合中国人的习惯

DateFormat类和MessageFormat类都属于Format类的子类,专门用于格式化数据使用

DateFormat类是一个抽象类,无法直接实例化,但是在此抽象类中提供了一个静态方法,可以直接取得本类的实例。

//=================================================// File Name       :	DateFormat_demo//------------------------------------------------------------------------------// Author          :	Commonimport java.util.Date;import java.text.DateFormat;//主类//Function        : 	DateFormat_demopublic class DateFormat_demo {	public static void main(String[] args) {		// TODO 自动生成的方法存根		DateFormat df1 = null;										//声明DateFormat类对象		DateFormat df2 = null;										//声明DateFormat类对象		df1 = DateFormat.getDateInstance();				//取得日期		df2 = DateFormat.getDateTimeInstance();		//取得日期时间		System.out.println("DATE:"+df1.format(new Date()));		//格式化日期		System.out.println("DATETIME:"+df2.format(new Date()));	}} 

 

指定显示的风格

//=================================================// File Name       :	DateFormat_demo//------------------------------------------------------------------------------// Author          :	Commonimport java.util.Date;import java.util.Locale;import java.text.DateFormat;//主类//Function        : 	DateFormat_demopublic class DateFormat_demo {	public static void main(String[] args) {		// TODO 自动生成的方法存根		DateFormat df1 = null;										//声明DateFormat类对象		DateFormat df2 = null;										//声明DateFormat类对象				//取得日期时间,设置日期的显示格式、时间的显示格式		df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN"));		df2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN"));		System.out.println("DATE:"+df1.format(new Date()));		//格式化日期		System.out.println("DATETIME:"+df2.format(new Date()));	}}

输出

DATE:2017年5月17日DATETIME:2017年5月17日 下午09时38分22秒 CST

 

格式化日期操作

首先使用第1个模板将字符串中表示的日期数字取出,然后再使用第2个模板将这些日期数字重新转化为新的格式表示。

//=================================================// File Name       :	DateFormat_demo//------------------------------------------------------------------------------// Author          :	Commonimport java.util.Date;import java.text.ParseException;import java.text.SimpleDateFormat;//主类//Function        : 	DateFormat_demopublic class DateFormat_demo {	public static void main(String[] args) {		// TODO 自动生成的方法存根//		DateFormat df1 = null;										//声明DateFormat类对象//		DateFormat df2 = null;										//声明DateFormat类对象		df1 = DateFormat.getDateInstance();				//取得日期		df2 = DateFormat.getDateTimeInstance();		//取得日期时间//		//		//取得日期时间,设置日期的显示格式、时间的显示格式//		df1 = DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN"));//		df2 = DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN"));//		System.out.println("DATE:"+df1.format(new Date()));		//格式化日期//		System.out.println("DATETIME:"+df2.format(new Date()));				String strDate = "2016-3-11 10:20:30.123";		//定义日期时间的字符串		String pat1 = "yyyy-MM-dd HH:mm:ss.SSS";		//准备第1个模板,从字符串中提取数字		String pat2 = "yyyy年MM月dd日HH时mm分ss秒SSS毫秒";		//准备第1个模板,从字符串中提取数字		SimpleDateFormat sdf1 = new SimpleDateFormat(pat1);			//实例化模板对象		SimpleDateFormat sdf2 = new SimpleDateFormat(pat2);			//实例化模板对象				Date d = null;		try{			d = sdf1.parse(strDate);				//将给定字符串中的日期提取出来		}catch(ParseException e){				//如果提供的字符串格式有错误,则进行异常处理			e.printStackTrace();		}		System.out.println(sdf2.format(d));				//将日期变成新的格式	}}

 输出

2016年03月11日10时20分30秒123毫秒

SimpleDateFormat的parse方法

public static void main(String[] args) throws ParseException {		// TODO 自动生成的方法存根		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");		String dateString = "2017-08-01";		Date date = sdf.parse(dateString);		System.out.println(date);	}

 输出

Tue Aug 01 00:00:00 CST 2017

 

实现:基于Calendar类

//=================================================// File Name       :	CalendarClass_demo//------------------------------------------------------------------------------// Author          :	Commonimport java.sql.Date;import java.util.Calendar;import java.util.GregorianCalendar;//类名:DateTime//属性://方法:class DateTime {	private Calendar calendar = null;		//定义一个Calendar对象,可以取得时间	public DateTime() {											super();		this.calendar = new GregorianCalendar();		//通过Calendar类的子类实例化	}		public String getDate(){		//得到完整的日期,格式为:yyyy-MM-dd HH:mm:ss.SSS		//考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能		StringBuffer buf = new StringBuffer();		//依次取得时间		buf.append(calendar.get(Calendar.YEAR)).append("-");		buf.append(this.addZero(calendar.get(Calendar.MONTH)+1, 2));		buf.append("-");		buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2));		buf.append(" ");		buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2));		buf.append(":");		buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2));		buf.append(":");		buf.append(this.addZero(calendar.get(Calendar.SECOND), 2));		buf.append(".");		buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3));				return buf.toString();			}		public String getDateComplete(){		//得到完整的日期,格式为:yyyy年MM月dd日HH时mm分ss秒SSS毫秒		//考虑到程序要频繁修改字符串,所以使用StringBuffer提升性能		StringBuffer buf = new StringBuffer();		//依次取得时间		buf.append(calendar.get(Calendar.YEAR)).append("年");		buf.append(this.addZero(calendar.get(Calendar.MONTH)+1, 2));		buf.append("月");		buf.append(this.addZero(calendar.get(Calendar.DAY_OF_MONTH), 2));		buf.append("日");		buf.append(this.addZero(calendar.get(Calendar.HOUR_OF_DAY), 2));		buf.append("时");		buf.append(this.addZero(calendar.get(Calendar.MINUTE), 2));		buf.append("分");		buf.append(this.addZero(calendar.get(Calendar.SECOND), 2));		buf.append("秒");		buf.append(this.addZero(calendar.get(Calendar.MILLISECOND), 3));		buf.append("毫秒");				return buf.toString();			}		//考虑到日期中有前导0,所以在此处加上了补零的方法	private String addZero(int num,int len){		StringBuffer s = new StringBuffer(); 		s.append(num);		while(s.length()

 输出

系统时间:2017-05-17 20:41:06.508中文时间:2017年05月17日20时41分06秒508毫秒系统时间:20170517204106508

 

实现:基于SimpleDateFormat类

//=================================================// File Name       :	SimpleDateFormat_demo//------------------------------------------------------------------------------// Author          :	Commonimport java.util.Date;import java.text.SimpleDateFormat;//类名:DateTime//属性://方法:class DateTime_1 {	private SimpleDateFormat sdf = null;		//声明日期格式化操作对象,直接对new Date()进行实例化		//得到日期,格式为:yyyy-MM-dd HH:mm:ss.SSS	public String getDate(){				this.sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");		return this.sdf.format(new Date());			}		//得到完整的日期,格式为:yyyy年MM月dd日HH时mm分ss秒SSS毫秒	public String getDateComplete(){				this.sdf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒SSS毫秒");		return this.sdf.format(new Date());			}		//得到时间戳,格式为:yyyyMMddHHmmssSSS	public String getDateStamp(){				this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");		return this.sdf.format(new Date());			}}//主类//Function        : 	SimpleDateFormat_demopublic class SimpleDateFormat_demo {	public static void main(String[] args) {		// TODO 自动生成的方法存根		DateTime dt = new DateTime();			//实例化DateTime对象		System.out.println("系统时间:"+dt.getDate());		System.out.println("中文时间:"+dt.getDateComplete());		System.out.println("系统时间:"+dt.getTimeStamp());	}}

 输出

系统时间:2017-05-17 20:59:26.224中文时间:2017年05月17日20时59分26秒224毫秒系统时间:20170517205926224

 

转载于:https://www.cnblogs.com/tonglin0325/p/5265788.html

你可能感兴趣的文章
类间关系总结
查看>>
properties配置文件读写,追加
查看>>
Linux环境下MySql安装和常见问题的解决
查看>>
lrzsz——一款好用的文件互传工具
查看>>
ZPL语言完成条形码的打印
查看>>
这20件事千万不要对自己做!
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>
玩转小程序之文件读写
查看>>
HashPump用法
查看>>
cuda基础
查看>>
virutalenv一次行安装多个requirements里的文件
查看>>
Vue安装准备工作
查看>>
.NET 母版页 讲解
查看>>
Android Bitmap 和 Canvas详解
查看>>
最大权闭合子图
查看>>
oracle 创建暂时表
查看>>
201421410014蒋佳奇
查看>>
导入导出数据库和导入导出数据库表
查看>>
linux下操作mysql
查看>>
【03月04日】A股滚动市盈率PE历史新低排名
查看>>