Java入门——日期操作类

Java入门——日期操作类



Date类

  

是一个较为简单的操作类,使用java.util.Data类的构造方法并进行输出就可以得到一个完整的日期。构造方法为:  public Data();

  java.util包需要导入

package Sep26;

import java.util.Date;

public class DataDemo01 {
	public static void main(String[] args) {
		Date date=new Date();
		System.out.println("当前日期为:"+date);
	}
}
当前日期为:Mon Sep 26 10:57:57 CST 2016

  使用Calendar类可以得到格式丰富的日期

Calendar类

Calendar类是一个抽象类,可以依靠对象的多态性,通过子类对父类进行实例化操作,Calendar类的子类是GregorianCalendar类。  

属性:

序号 常量 类型 描述
1 public static final int YEAR int 取得年
2 public static final int MONTH int 取得月
3 public static final int DAY_OF_MONTH int 取得日
4 public static final int HOUR_OF_DAY int 取得小时,24小时制
5

public static final int MINUTE

int 取得分
6 public static final int SECOND int 取得秒
7 public static final int MILLISEOND int 取得毫秒

方法:

序号 方法 类型 描述
1 public static Calendar getInstance() 普通 根据默认的时区实例化对象
2 public beelean after(Obeject when) 普通 判断一个日期是否在一个日期之前
3 public beelean before(Obeject when) 普通 判断一个日期是否在一个日期之后
4 public int get(int field) 普通 返回给定日历字段的值
package Sep26;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class DateDemo02 {
	public static void main(String[] args) {
		Calendar calendar=null;
		calendar=new GregorianCalendar();
		System.out.println("年:"+calendar.get(Calendar.YEAR));
		System.out.println("月:"+calendar.get(Calendar.MONTH)+1);//月份是从0开始算的,所以要+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));
	}
}
年:2016
月:81
日:26
时:11
分:20
秒:3
毫秒:384

  按照以上方法获得系统的时间会比较复杂,所以Java提供了其他方便的系统时间类,以显示符合习惯的系统时间

DateFormat类

  Format类是用于格式化数据的一个类,DateFormat类是它的一个子类:DateFormat类也是一个抽象类,但是该抽象类中提供了一个静态方法,可以直接取得本类的实例。

package Sep26;

import java.util.*;
import java.text.*;

public class DateDemo03 {
	public static void main(String[] args) {
		DateFormat df1=null;
		DateFormat df2=null;
		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("DATE:"+df2.format(new Date()));
	}
}
DATE:2016年9月26日
DATE:2016年9月26日 上午11时37分59秒 CST

SimpleDateFormat类(最常用)

  先定义出一个完整的日期转换模板,在模板中通过通过特定的日期标记:

序号 标记 描述
1 yyyy
2 MM
3 dd
4 HH 小时
5 mm 分钟
6 ss
7 SS 毫秒
     

常用方法:

序号 方法 类型 描述
1 public SimpleDateFormat(String pattern) 构造 通过一个指定的模板构造对象
2 public Date parse(String source)throws ParseException 普通 将一个包含日期的字符串变为Date类型
3 public final String format(Date date) 普通 将一个日期类型按照指定格式转化为字符串类型
package Sep26;
import java.util.*;
import java.text.*;
public class DateDemo05 {
	public static void main(String[] args) {
		String strData="2016-09-26 10:11:30.123";//定义日期时间的字符串
		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(strData);//提取字符串中的日期
		} catch (ParseException e) {
			e.printStackTrace();
		}
		System.out.println(sdf2.format(d));
	}
}
2016年09月26日 10点11分30秒123毫秒

  1:根据模板实例化对象构造函数)

  2:parse()函数提取字符串中的日期,变为Date类型

  3:format()函数格式化时间

原文地址:https://www.cnblogs.com/BoscoGuo/p/5908573.html