使用Java的时间类来操作日期和时间
Java提供了很多时间类,可以很方便地操作日期和时间。其中比较常用的时间类有Date、Calendar、DateFormat、SimpleDateFormat等。
1.Date类
Date类表示一个特定的瞬间,即从1970年1月1日00:00:00起到所表示时间的毫秒数(long值)。Date类有很多构造方法,也可以通过getTime()方法获取时间的毫秒数。
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
//当前时间
Date date = new Date();
System.out.println(date);
//指定时间
Date date2 = new Date(2020, 2, 2);
System.out.println(date2);
//时间戳
Date date3 = new Date(System.currentTimeMillis());
System.out.println(date3);
}
}
2.Calendar类
Calendar类是抽象类,用于操作日期和时间。它提供了一些静态方法,可以获取该类的实例,还提供了很多实例方法,可以进行日期和时间的计算、格式化等操作。
import java.util.Calendar;
public class CalendarTest {
public static void main(String[] args) {
//获取实例
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
//设置年月日
cal1.set(Calendar.YEAR, 2020);
cal1.set(Calendar.MONTH, 1);
cal1.set(Calendar.DAY_OF_MONTH, 2);
//获取年月日
int year = cal1.get(Calendar.YEAR);
int month = cal1.get(Calendar.MONTH);
int day = cal1.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "-" + (month + 1) + "-" + day);
//计算日期
cal2.add(Calendar.DAY_OF_MONTH, 10);
System.out.println(cal2.getTime());
//比较日期
boolean flag = cal1.before(cal2);
System.out.println(flag);
}
}
3.DateFormat类
DateFormat类用于格式化日期和时间。它是抽象类,可以通过SimpleDateFormat类实现。DateFormat类有很多实例方法可以根据模板字符串,格式化输出不同格式的日期和时间。
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
public class DateFormatTest {
public static void main(String[] args) throws ParseException {
//指定日期和时间格式
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
Date date = new Date();
String str = dateFormat.format(date);
System.out.println(str);
//将字符串解析为日期
DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
String str2 = "2020-02-02";
Date date2 = dateFormat2.parse(str2);
System.out.println(date2);
}
}
4.SimpleDateFormat类
SimpleDateFormat类是DateFormat类的子类,它可以设置任意的日期格式。通过它可以格式化输出不同格式的日期和时间,也可以将字符串解析为日期。
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatTest {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String str = sdf.format(date);
System.out.println(str);
}
}
总结:
Java提供了很多时间类,可以满足不同情况下的需求。需要注意的是,Date和Calendar类在计算日期时,月份是从0开始的,即0代表一月。DateFormat和SimpleDateFormat类在设置日期格式时,需要注意大小写。
