Java常用类--日期类

Date ,这个不推荐用,推荐用下面的LocalDateTime和LocalDate,因为更安全

Date可以被实例化

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

public class Demo2 {

	public static void main(String[] args) {
		Date date=new Date();
        //输入的字符串和所用的时间显示的模板格式要相同,比如模板有-相连,那么输入的字符串也要有-
        //注意:这个地方显示的是Date类型,不是根据自己定义的格式显示,想要按自己定义的格式显示,可以执行下面/**/中的代码
		Date date3=getDate("2020-08-14 19:28:29","yyyy-MM-dd HH:mm:ss");
		System.out.println(date3);
       /* 
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String dateStr=sdf1.format(date3);
		System.out.println(dateStr);
        */
//      可以传入一个时间戳做参数,返回值是Date类型
//		Date date2 =new Date(1597403992006L);
//		System.out.println(date2);
//		SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		String sdf= simpleDateFormat.format(date);
//		System.out.println(sdf.toString());
//		while(true){
//		System.out.println(date);
//		System.out.println(date.getTime());
//		try {
//			Thread.sleep(10000);
//		} catch (InterruptedException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		 }

	}
public static Date getDate(String str,String format){
	SimpleDateFormat simpleDateFormat=new SimpleDateFormat(format);
	Date d = null;
	try {
		d=simpleDateFormat.parse(str);
	} catch (ParseException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return d;
}
	

}

/*
 * LocalDate只有年月日
 * LocalDateTime年月日时分秒
 * LocalTime时分秒
 */


import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Date {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//now()方法是静态方法
		LocalDateTime dateTime = LocalDateTime.now();
		
		DateTimeFormatter date1=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		String str = dateTime.format(date1);
		//把字符串转换成LocalDateTime
		LocalDateTime ldt=LocalDateTime.parse(str, date1);
		System.out.println(ldt);
//		System.out.print(ldt.getYear()+"年");
//		System.out.print(ldt.getMonthValue()+"月");
//		System.out.println(ldt.getDayOfMonth()+"日");
//		System.out.print(ldt.getHour()+"时");
//		System.out.print(ldt.getMonthValue()+"分");
//		System.out.print(ldt.getSecond()+"秒");
	}
	}

 /*LocalDate类被final关键字修饰,所以不能被继承,只可以获取当前时间的年月日(详细方法见如下代码)

import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class Date1 {

	public static void main(String[] args) {
	LocalDate ld=LocalDate.now();
	System.out.println(ld);
	//获取年,月日,周
	System.out.println(ld.getYear()+"年"+ld.getMonthValue()+"月"+ld.getDayOfMonth()+"日周"+ld.getDayOfWeek().getValue());
	
	//年份加减1
	LocalDate ld1 = ld.plusYears(1);
	System.out.println(ld1);
	LocalDate ld2=ld.plusYears(-1);
	System.out.println(ld2);
	
	
	//日期比较,返回一个boolean类型
	boolean flag=ld.isAfter(ld2);
	//包装类,自动的装包解包
	Boolean flag1=ld.isBefore(ld2);
	System.out.println(flag+" "+flag1);
	
	
	//LocalDateTime,可以获取年月日时分秒
	LocalDateTime ldt=LocalDateTime.now();
    //DateTimeFormatter.ofPattern可以创建一个时间显示的模板
	DateTimeFormatter date= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
	String string=date.format(ldt);
	System.out.println(string);
	//parse方法是将字符串转换为LocalDateTime类型,第一个参数是输入的字符串,第二个参数是显示的模板
	LocalDateTime dd=LocalDateTime.parse(string,date);
	System.out.println(dd);
	LocalTime d1=LocalTime.parse(string,date);
	System.out.println(d1);
	
	
	//日期时间差计算类java.time.Duration
	LocalDateTime today=LocalDateTime.now();
	LocalDateTime dateold=LocalDateTime.of(2018, 12, 12, 12, 12,12);
	Duration duration=Duration.between(dateold, today);
	System.out.println(duration.toDays()+" "+duration.toHours()+" "+duration.toMinutes());
	
	}

}

日历类

/*通过set方法传值,Calendar是一个抽象类,不能实例化(new)对象,getInstance是一个static类型的方法,所以可以用类名.方法名的方式调用*/

import java.util.Calendar;

public class Demo3 {
/*
 * 日历类
 */
	public static void main(String[] args) {
		Calendar calendar= Calendar.getInstance();
		calendar.set(2020,8,14);
		//获取年
		int year=calendar.get(calendar.YEAR);
		int month=calendar.get(calendar.MONTH);
		System.out.println(year+" "+month);
		calendar.get(calendar.DAY_OF_MONTH);
		calendar.get(calendar.HOUR_OF_DAY);
		calendar.get(calendar.MINUTE);
		calendar.get(calendar.SECOND);
	}
}

运行截图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值