【Java-API】Date、Calendar和SimpleDateFormat常用方法。

Date、Calendar和SimpleDateFormat常用方法。

1.Date常用类方法

package cn.meituan.classdate;

import java.util.Date;

/**
 * 3. 日期和时间相关类:(掌握) 
 * 3.1
 *  Date类: 适用于特定的某一刻时间的场景,如:订单时间、入职时间等 日期相关类,指具体某一刻的时间
 * 1.构造方法
 *  1. Date() 创建的就是当前这一刻时间的对象
 *  2. Date(long time) 将指定毫秒数的时间转换为对应的日期时间 距离1970年1月1日 0时0分0秒
 * 
 * 2. 普通方法 
 * 	1. long getTime()将当前Date对象转换为long类型的时间毫秒数
 *  2. void setTime(long time)将long类型时间毫秒数转换为对应的Date对象
 *  3. before(Date date)判断是否在指定日期之前 4. after(Date date)判断是否在指定日期之后
 */
public class DateTest {

	public static void main(String[] args) {
		//1. Date() 无参创建Date对象
		Date date = new Date();
		System.out.println(date); // Sun Mar 13 21:43:01 CST 2022

		/*
		 * 2. Date(long time) 将指定毫秒数的时间转换为对应的日期时间 距离1970年1月1日 0时0分0秒
		 */
		// 获取当前时间毫秒数,调用方法:currentTimeMillis
		long now = System.currentTimeMillis();
		// 获取明天此刻的毫秒数
		long tomorrow = now + 2 * 24 * 60 * 60 * 1000;// 加两天的毫秒数
		long tomorrow1 = now +  24 * 60 * 60 * 1000;// 加一天的毫秒数
		// 创建Date对象,传入tomorrow毫秒数【创建了明天此刻的Date对象】
		Date date2 = new Date(tomorrow);
		System.out.println("后天的这个时间为:" + date2);
		System.out.println("今天的这个时间为:" +date);
		
		// 普通方法
		// 1. long getTime()将当前Date对象转换为long类型的时间毫秒数
		long datetime = date.getTime();
		System.out.println("date转为毫秒数为:"+datetime);
		// 2. void setTime(long time)将long类型时间毫秒数转换为对应的Date对象
		date.setTime(tomorrow1); // 将date设置成tomorrow这个时间了
		System.out.println("date修改过后的时间:"+date);

		// 3. before(Date date)判断是否在指定日期之前
		boolean b1 = date.before(date2);
		System.out.println("是否在指定日期之前:" + b1);
		// 4. after(Date date)判断是否在指定日期之后
		boolean after = date.after(date2);
		System.out.println("是否在指定日期之前:" + after);
		
	}

}

2.Calendar常用方法

package cn.meituan.classdate;

import java.util.Calendar;
import java.util.Date;

/**
 * 3.3 Calendar日历类。主要用来操作一段时间和进行时间加减等场景 使用:
 *  构造方法:(protected) Calendar rightNow =Calendar.getInstance();获取一个对象
 *  
 *  常用方法:
 *   1.int get(int field) 获取某一个字段(当前Calendar常量)的时间
 *   2.abstract void add(int field, int amount) 添加时间操作 
 *   field:是Calendar中的常量 月份从:0-11
 *   如果月份超过11,则进年,如果日期超过所在月份的最大或者最小一天,则进月或者退月 
 *   3.void set(int field, int value)根据当前Calendar常量设置时间
 *   4.Date getTime() 将Calendar对象转换为Date类型
 *   5.voidsetTime(Date date) 将Date转换为Calendar
 *   6.boolean after(Object when) 
 *   7.boolean before(Object when)
 *   时间、日历、时间格式化类使用场景:【掌握】 Calendar抽象类,日历类。
 *   主要是用来操作日期的,例如,加减日期,比较日期,判断一段时间等
 *   Date类:适用于具体某一刻时间,一般用在例如,订单时间、用户注册时间等
 *   SimpleDateFormat类:将日期和字符串进行格式转换
 * 
 * @author Mixi
 *
 */
public class Calendardemo {
	public static void main(String[] args) {
		// 创建一个Calendar对象
		Calendar rightNow = Calendar.getInstance();// 多态的方式创建对象 向上转型
		//
		System.out.println(rightNow);
		// 1.int get(int field) 获取某一个字段(当前Calendar常量)的时间
		int year = rightNow.get(Calendar.YEAR);
		int month = rightNow.get(Calendar.MONTH) + 1;
		int day = rightNow.get(Calendar.DATE);
		System.out.println(year + "年" + month + "月" + day + "日");

		/**
		 * 2.abstract void add(int field, int amount) 添加时间操作 field:是Calendar中的常量
		 * amount:如果是正数,表示+,如果是负数,就是减。但是注意,月、日都会导致进位退位 
		 * 月份从:0-11
		 * 如果月份超过11,则进年,
		 * 如果日期超过所在月份的最大或者最小一天,则进月或者退月
		 */

		rightNow.add(Calendar.YEAR, 4);
		rightNow.add(Calendar.MONTH, 11);
		int newyear = rightNow.get(Calendar.YEAR);
		int newmonth = rightNow.get(Calendar.MONTH);
		System.out.println(newyear + "年" + newmonth + "月" + day + "日");
	
		// 3.void set(int field, int value)可以直接设置某一个字段的值,例如设置年
		// set(Calendar.YEAR,2050);
		rightNow.set(Calendar.YEAR, 2041);
		int finalyear = rightNow.get(Calendar.YEAR);
		System.out.println(finalyear + "年" + newmonth + "月" + day + "日");
		
		// 4.Date getTime()   将Calendar对象转换为Date类型 
		Date time = rightNow.getTime(); :Wed Feb 13 15:55:13 CST 2041
		System.out.println("Calendar对象转换为Date类型为:"+time);
		
		// 5.void setTime(Date date)  将Date转换为Calendar
		rightNow.setTime(time); // 将Date转换为Calendar
		System.out.println("Date转换为Calendar为:"+rightNow);			
	}

}

3.SimpleDateFormat常用方法

package cn.meituan.classdate;

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

public class SimpleDateFormatclass {
	public static void main(String[] args) throws ParseException {
		// 创建一个Date对象获取当前时间 无参构造
		Date now = new Date(); // 当前的时间
		System.out.println("当前的时间为:" + now);
		// 创建一个Date对象获取当前时间 带参构造方法
		// 将时间进行更改为明天的这个时间
		long today = System.currentTimeMillis();
		Date d1 = new Date(today);
		System.out.println("当前的时间为:" + today);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		// 将Date对象转换成成字符串。
		String format = sdf.format(now);
		System.out.println("将Date对象转换成成字符串:" + format);// 2022年03月13日 15:54:23

		// 将字符串转换为Date对象
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");// 这里的格式必须与源字符串格式一一对应
		Date parse = sdf1.parse(format);
		System.out.println("字符串转换为Date对象:" + parse);// Sun Mar 13 15:54:23 CST
													// 2022

		// 补充:sdf.applyPattern(String pattern);可以将SimpleDateFormat重新设置模板格式
		sdf1.applyPattern("yyyy/MM/dd HH:mm:ss"); // sdf对象重新设置模板
		String format2 = sdf.format(parse);
		System.out.println("重新设置将Date对象转换成成字符串:" +format2);
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mxin5

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

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

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

打赏作者

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

抵扣说明:

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

余额充值