时间类总结

Date类

  • java.util.Date
  • Date的每一个实例用于表示一个确切的时间点,内部维护了一个long值,该值保存的是自1970年1月1日00:00:00
  • 到当前Date所表示时间之间经过的毫秒数。由于Date自身设计问题(主要是时区问题),所以Date大部分的操作时间的
  • 方法都被声明为过时方法,实际开发中已经不再建议使用了
  • Date类的构造方法
  • Date() 无参构造
  • Date(long time) 有长整型参数的构造方法
  • 其他构造方法已经废弃不用
  • Date类常用方法
  • long getTime();返回自1970年1月1日00:00:00以来此对象表示的毫秒数
  • setTime(long time);设置该对象的毫秒数
  • String toString();将Date对象转换为字符串
package SE01.n6Util;

import java.util.Date;

public class Demo01Date {
	public static void main(String[] args) {
		Date date =new Date();
		System.out.println(date);
		date.getYear();
		System.out.println(date.getMinutes());
		long time=date.getTime();
		System.out.println(time);//获取毫秒数,内部维护的long值
		
		time+=1000*60*60*24;//将毫秒数往后推一天
		
		date.setTime(time);//将推后一天的毫秒数设置回Date对象
		System.out.println(date);
		
		Date date2=new Date(time);//第二种构造方法
		System.out.println(date2);
	}
}

Calendar类

  • java.util.Calendar
  • 日历类,是一个抽象类,定义了操作日期的相关方法
  • 常用实现类:java.util.GregorianCalender,即:阳历
  • Calendar常用方法:
    1.static Calendar getInstance();该方法可以获取一个当前系统所在地区使用的实现类对象,大部分地区返回的都是阳历
    2.Date getTime();返回代表该日历对象的Date值
    3.void setTime(Date date);使用指定的Date设置该日历对象
    4.get(int field);获取某个日历字段的值
    5.void set(int field,int x);设置日历字段的值
  • 常用的日历字段:
  • AM_PM 上午或下午
  • YEAR 年
  • MONTH_OF_YEAR 月
  • DATE 日
  • HOUR 12小时制
  • HOUR_OF_DAY 24小时制
  • MINUTE 分钟
  • SECOND 秒
  • MILLISECOND 毫秒
package SE01.n7Canlendar;
import java.util.Calendar;
import java.util.Date;
public class Demo01Calendar {
	public static void main(String[] args) {
		Calendar calendar=Calendar.getInstance();
		System.out.println(calendar);
		
		Date date =calendar.getTime();//获取calendar对象中的Date实例
		System.out.println(date);
		long time=date.getTime();//获取毫秒数
		time+=1000*60*60*24;
		date.setTime(time);
		calendar.setTime(date);
		System.out.println(calendar);
	}
}

Calender的get方法

/*

  • Calendar提供了一个方法:
  • get(int field);获取某个日历字段的值
  • 该方法可以获取当前Calendar所表示的日期中给定的时间分量所对应的值
  • 不同的int值表示不同的时间分量。
  • 而Calendar提供了大量的静态常量用于说明这些时间分量

*/

package SE01.n7Canlendar;

import java.util.Calendar;

public class Demo02Get {
	public static void main(String[] args) {
		Calendar calenda = Calendar.getInstance();
		int year=calenda.get(Calendar.YEAR);
		System.out.println(year);
		int month=calenda.get(Calendar.MONTH)+1;
		System.out.println(month);
		int day=calenda.get(Calendar.DAY_OF_MONTH);//日
		System.out.println(day);
		int week=calenda.get(Calendar.WEEK_OF_MONTH);
		System.out.println(week);
		int h=calenda.get(Calendar.HOUR_OF_DAY);
		System.out.println(h);
		int m=calenda.get(Calendar.MINUTE);
		System.out.println(m);
		int s=calenda.get(Calendar.SECOND);
		System.out.println(s);
		int apmp=calenda.get(Calendar.AM_PM);
		String t="";
		if(apmp>0) {
			t="下午";
		}else {
			t="上午";
		}
		System.out.println(year+"年"+month+"月"+day+"日"+t+h+":"+m+":"+s);
	}
}

Calendar的set方法和add方法

/*

  • void set(int field,int x);设置日历字段的值
  • 设置当前Calendar指定时间分量所对应的值
  • void add(int field,int amount)
  • 对指定时间分量累加给定值,若amount是负数则减去
    */
package SE01.n7Canlendar;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Demo03Others {
	public static void main(String[] args) {
		Calendar c=Calendar.getInstance();
		c.set(Calendar.YEAR, 2000);
		c.set(Calendar.MONTH,Calendar.AUGUST);//设置月
		c.set(Calendar.DATE, 8);//日
		System.out.println(c.getTime());//Tue Aug 08 16:50:47 CST 2000
		
		
		c.add(Calendar.YEAR, 30);
		System.out.println(c.getTime());//Thu Aug 08 16:50:47 CST 2030
		GregorianCalendar g=new GregorianCalendar();
		g.isLeapYear(2020);//f
	}
}

DateFormat类

/*

  • DateFormat是一个抽象的时间格式化类
  • DateFormat以与语言无关的方式格式化(Date变字符串)并解析(字符串Date)日期或时间,
  • DateFormat可帮助进行格式化并解析任何语言环境的日期。对于月,星期,甚至日历格式
  • (阴历和阳历),其代码可完全与语言环境的约定无关。在格式化和解析日期时间的过程中,
  • 其子类SimpleDateFormat更为常用
  • SimpleDateFormat类
  • 构造方法
  • simpleDateFormat()
  • simpleDateFormat(String pattern)按照指定的模式创建SimpleDateFormat对象
    */
package SE01.n8dateFomat;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo01DateFormat {

	public static void main(String[] args) {
	
//	1.格式化:Date变String
	Date date=new Date();
	SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:ss E a");
	String line=sdf.format(date);
	System.out.println(line);//2020-06-30 21:37 周二 下午
//	2.解析:String变Date
	String str="1999-06-03 16:06:00";
	SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	Date date2=new Date();
	try {
		date2=sdf2.parse(str);
	} catch (ParseException e) {
		e.printStackTrace();
	}
	System.out.println(date2);//Thu Jun 03 16:06:00 CST 1999
	}
}

格式简写表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值