【Java】Java日期时间类

Java中获取当前日期可以通过Date或Calendar类的对象实现,本文整理了两个类的常用方法及其功能的实现。

Date类

1.获取当前日期时间——创建Date类对象

Date currentDate = new Date();

2.日期先后比较

currentDate.before(newDate);	//判断currentDate是否在newDate之前,返回布尔值

currentDate.after(newDate);		判断currentDate是否在newDate之前,返回布尔值

3.得到日期自1970年1月1日起经历的毫秒数——getTime()

Calendar类

Calendar类可表示时间分量,包括:年(YEAR),月(MONTH),日(DATE),时(HOUR),分(MINUTE),秒(SECOND).

注意:

  • 使用函数得到的月份比当前月份少1;得到的时(HOUR)为12小时制。

  • 此外,还可得到今天是本周第几天(DAY_OF_WEEK);当前时刻是今天(24进制)第几个小时(HOUR_OF_DAY);今天是今年第几天(默认天数比实际天数多1)。

基于当前时间创建Calendar类对象

Calendar calendar = Calendar.getInstance();	//基于当前时间创建对象

常用方法

(参考资料:https://blog.youkuaiyun.com/weixin_42110638/article/details/85467987)

通过Calendar类对象调用函数 实现以下功能:

1.得到当前时间:getTime()

2.得到时间分量:get(时间分量)

import java.util.Calendar;

public class CalendarTest {
	public static void main(String[] args) {
		// 得到Calendar实例(获得当前日期对象)
		Calendar calendar = Calendar.getInstance();
		// 利用calendar对象输出当前日期
		System.out.println("当前时间:" + calendar.getTime());
		
		System.out.println("当前年份:" + calendar.get(Calendar.YEAR));
		
		System.out.println("当前月:" + (calendar.get(Calendar.MONTH)+1));
		System.out.println("当前日期:" + calendar.get(Calendar.DATE));
		System.out.println("当前小时:" + calendar.get(Calendar.HOUR));
		System.out.println("当前小时(12进制):" + calendar.get(Calendar.HOUR));
		System.out.println("当前小时(24进制):" + calendar.get(Calendar.HOUR_OF_DAY));
		
		//得到今天是本周第几天(默认周日是一周第一天)
		System.out.println("当前星期:" + calendar.get(Calendar.DAY_OF_WEEK));
		
		//得到今天是今年第几天(默认天数比实际天数多1)
		System.out.println("当前是今年第:" + (calendar.get(Calendar.DAY_OF_YEAR)-1)+"天");
	}
}

格式化时间(SimpleDateFormat)

日期和时间格式由日期和时间模式字符串 指定。在 日期和时间模式字符串 中,未加引号的字母 ‘A’ 到 ‘Z’ 和 ‘a’ 到 ‘z’ 被解释为模式字母,用来表示日期或时间字符串元素。即:AZ或az字母会被特殊处理替换为对应的日期时间,其他的字符串是原样输出。

日期格式的字母表示

  • yyyy:年
  • MM:月
  • dd:日
  • hh:1~12小时制(1-12)
  • HH:24小时制(0-23)
  • mm:分
  • ss:秒
  • S:毫秒
  • E:星期
  • D:一年中的第几天
  • F:一月中的第几个星期(会把这个月总共过的天数除以7)
  • w:一年中的第几个星期
  • W:一月中的第几星期(会根据实际情况来算)
  • a:上下午标识
  • k:和HH差不多,表示一天24小时制(1-24)。
  • K:和hh差不多,表示一天12小时制(0-11)。
  • z:表示时区

SimpleDateFormat类的parse和format方法

  • parse:将字符串转换成时间

  • format:将时间转换成字符串

用 SimpleDateFormat 类的 format(Date对象) 方法指定时间格式

用SimpleDateFormat类对象调用format方法实现日期的格式化

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

public class DateFormatTes {
	public static void main(String[] args) {
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
		SimpleDateFormat sdf2 = new SimpleDateFormat("yy/MM/dd HH:mm");
		SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
		Date now = new Date();
		System.out.println("输出格式1: "+sdf1.format(now));
		System.out.println("输出格式2: "+sdf2.format(now));
		System.out.println("输出格式3: "+sdf3.format(now));
	
	}
}

用 SimpleDateFormat 类的 parse(String对象) 方法将字符串转换成时间

将字符串通过 SimpleDateFormat 类的 parse 方法转换为时间(Date类),用Date类对象接收

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

public class DateFormatTes {
	public static void main(String[] args) {
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
		SimpleDateFormat sdf2 = new SimpleDateFormat("yy/MM/dd HH:mm");
		SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
		
		String s = "2021-12-19";
		Date date;
		try {
			date = sdf3.parse(s);
			System.out.println("输出date: "+date);
			System.out.println("输出sdf1格式: "+sdf1.format(date));
			System.out.println("输出sdf2格式: "+sdf2.format(date));
			System.out.println("输出sdf3格式: "+sdf3.format(date));
		} catch (ParseException e) {			
			e.printStackTrace();
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值