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);
}
}
运行截图