java时间处理相关类

时间处理相关类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Date时间类(java.util.Date)
在这里插入图片描述

/**
 * 测试Date类常用方法
 * @author TheMutents
 */
import java.util.Date;


public class DataClass {
	public static void main(String[] args) {
		//long类型可以表示的最大年数
		long a=Long.MAX_VALUE/(1000l*3600*24*365);//大约292471208个年数,足够工作中使用
		System.out.println(a);
		
		long nowNum=System.currentTimeMillis();//代表系统(根据操作系统时间计算)当前时刻的毫秒数(从计算机零时刻开始)
		System.out.println(nowNum);
	
		Date d1=new Date();//无参代表当前时刻
		Date d2=new Date(1000l*3600*24*365*10);
		System.out.println(d1.getTime());//getTime()返回d1时间的毫秒数(自1970-1-1-00:00:00后)
		System.out.println(d2.getTime());
		System.out.println(d1.toString());//toString返回格式Thu Apr 08 21:27:11 CST 2021
		System.out.println(d2.toString());
		System.out.println(d1.after(d2));//表示d1时刻在d2时刻后面
		System.out.println(d2.before(d1));//表示d2时刻在d1时刻前面
		System.out.println(d2.equals(d1));//比较两个日期是否相等
		
	}
}

代码结果:
在这里插入图片描述

DateFormat类和SimpleDateFormat类(时间格式化类)
在这里插入图片描述

格式化字符的含义
在这里插入图片描述
测试代码

/**
 * 测试时间格式化类
 */
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DataFormat_Test {
		public static void main(String[] args) throws ParseException {
			SimpleDateFormat df1=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//时间格式
			SimpleDateFormat df2=new SimpleDateFormat("今年第M月的第d天,今年第w周");
			
			Date d1=new Date();
			String str1=df1.format(d1);//将Date类型时间转为df1格式的字符串类型
			String str2=df2.format(d1);
			System.out.println(str1);
			System.out.println(str2);
			
			String str3="2020-12-12 12:00:00";//将字符串类型时间转化为Date类型时间
			Date d2=df1.parse(str3);
			System.out.println(d2.getTime());
			
		}
}

代码结果:
在这里插入图片描述

calendar日历类(抽象类)和子类GregorianCalendar
在这里插入图片描述
月份:从0-11,依次表示一月、二月、三月、…、十月、十一月、十二月
星期:从1-7,依次表示星期天、星期一、…、星期五、星期六


import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 * 测试日历类Calendar的子类GregorianCalendar
 * @author TheMutents
 *
 */
public class Calendar_Test {
		public static void main(String[] args) {
			GregorianCalendar calendar=new GregorianCalendar();//创建当前时间的日历对象(无参)
			
			System.out.println(calendar.get(Calendar.YEAR));//打印日历年份2021
			System.out.println(calendar.get(Calendar.MONTH));//打印日历对象的月份,0代表1月,以此类推
			System.out.println(calendar.get(Calendar.DATE));//返回天数(几号)
		    System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//打印星期几,1代表星期天,2-星期一,以此类推
		    System.out.println(calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE)+":"+calendar.get(Calendar.SECOND));
		    dp(calendar);		
			
			GregorianCalendar c1=new GregorianCalendar(2021,3,9,12,12,12);

			System.out.println(c1.get(Calendar.YEAR));//打印日历年份2021(有参)
			System.out.println(c1.get(Calendar.MONTH));//此处打印日历对象的月份(对象中月份参数的值,3-四月)
			System.out.println(c1.get(Calendar.DATE));//返回天数(几号)
		    System.out.println(c1.get(Calendar.DAY_OF_WEEK));//此处打印6,表示星期5
		    //打印时分秒
		    System.out.println(c1.get(Calendar.HOUR_OF_DAY)+":"+c1.get(Calendar.MINUTE)+":"+c1.get(Calendar.SECOND));
		    dp(c1);
		    
		    //更改c1
		    c1.set(Calendar.DATE, 20);//日期改为20号
		    c1.add(Calendar.HOUR, 4);//时间增加4小时
		    dp(c1);
		    
		    Date d=c1.getTime();//日历对象转成时间对象(毫秒单位)
		    SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//创建一个时间格式对象
		    String c1Time=f.format(d);
		    System.out.println("更改后的c1为:"+c1Time);
			Calendar c=Calendar.getInstance();//使用Calendar类的静态方法创建日历对象
			c.setTime(d);//时间对象转成日历对象d转化为日历对象c
			System.out.println(c.get(Calendar.DAY_OF_WEEK));//打印3,3—星期二,2021-4-20(星期二)
		    dp(c);
		}
		
		 public static void dp(Calendar c){
				String []mon = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};  
				String []week = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
				int year=c.get(Calendar.YEAR);
				String month=mon[c.get(Calendar.MONTH)];
				String weekday=week[c.get(Calendar.DAY_OF_WEEK)];
				System.out.println(year+"年"+month+c.get(Calendar.DAY_OF_MONTH)+"日"+weekday);
				System.out.print("时间:");
				System.out.println(c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND));
				System.out.println("---------------------------------");
		    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The Mutents

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值