文章目录
1 传统日期类
1.1 Date类
import java.util.Date;
public class Main {
public static void main(String[] args) {
Date date1 = new Date();
System.out.println(date1);
Date date2 = new Date(1432432432);
System.out.println(date2);
long time = date1.getTime();
System.out.println(time);
time += (60 * 60) * 1000;
date1.setTime(time);
System.out.println(date1);
}
}
输出
Sun Jun 25 15:25:07 CST 2023
Sat Jan 17 21:53:52 CST 1970
1687677907079
Sun Jun 25 16:25:07 CST 2023
常用的构造方法就是这两个,一个获取当前时间,一个根据输入的毫秒值设置初始时间,是计算的从1970年1月1日零时开始计算的毫秒值。
getTime()
方法能够获取当前时间到1970年1月1日零时的毫秒值。
1.2 SimpleDateFormat类
该类是一个抽象类
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NqyYkpMM-1687701841610)(https://note.youdao.com/yws/res/4281/WEBRESOURCEb42aa2e29aa344be57d8a2271cbf3b10)]
该类用于格式化输出时间,可指定的格式如上所示
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeDemo2 {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE a");
String str = simpleDateFormat.format(date);
System.out.println(str);
long time = System.currentTimeMillis() + 121 * 1000;
String str2 = simpleDateFormat.format(time);
System.out.println(str2);
}
}
输出
2023-06-25 15:31:46 周日 下午
2023-06-25 15:33:47 周日 下午
可以通过Date对象或者是毫秒值来格式化为日期时间。
还有个比较重要的方法是将字符串形式的日期字符串转换为Date对象
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeDemo3 {
public static void main(String[] args) throws ParseException {
String dateStr = "2023年6月25日 15:37:43";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date = sdf.parse(dateStr);
System.out.println(date);
System.out.println(sdf.format(date));
}
}
输出
Sun Jun 25 15:37:43 CST 2023
2023年06月25日 15:37:43
1.3 Calendar类
Calendar代表系统此刻日期对应的日历对象,是一个抽象类,不能直接创建对象。
import java.util.Date;
public class TimeDmoe4 {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
int mm = calendar.get(Calendar.MONTH);
System.out.println(mm);
int days = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println(days);
calendar.add(Calendar.DAY_OF_YEAR, 64);
Date date = calendar.getTime();
System.out.println(date);
long time