最近在看《Head First Java》,看到了这块的内容,做一下小的总结。
- Java日期这块有Date类和Calendar类,粗糙的说,Date是用来获取日期的,而Calendar是用来进行相关计算的。(书上原话“但当你检查API文件时,你会发现有很多Date的功能被停用了!但这个类还是很适合用来取得目前的时间。好消息时API建议到java.util。Calendar上面去寻找其余功能。”)
- 注意import包时,有java.util.Date和java.sql.Date两种,一般用前者(java.sql.Date是java.util.Date的子类,只有年月日)。
- 简单例子
import java.util.Calendar;
import java.util.Date;
public class First {
public static void main(String[] args) {
Date date = new Date();
System.out.println("date: " + date);
//CST是时区
//因为Calendar是抽象类,所以你无法获取它的实例,但你可以通过getInstance()获取它的子类
Calendar calendar = Calendar.getInstance();
//简单例子
//2020:01:01 01:01
calendar.set(2020,1,1,1,1);
//将目前时间转换为分秒
long day1 = calendar.getTimeInMillis();
day1 += 1000 * 60 * 60;
calendar.setTimeInMillis(day1);
System.out.println("day1: " + calendar.get(calendar.HOUR_OF_DAY));
//加上30天
calendar.add(calendar.DATE, 30);
System.out.println("add: " + calendar.getTime());
//滚动30天,只有日期会变
calendar.roll(calendar.DATE, 30);
System.out.println("roll: " + calendar.getTime());
//直接设置日期的值
calendar.set(calendar.DATE, 1);
System.out.println("set: " + calendar.getTime());
}
}
date: Mon Jul 26 14:23:09 CST 2021
day1: 2
add: Mon Mar 02 02:01:09 CST 2020
roll: Sun Mar 01 02:01:09 CST 2020
set: Sun Mar 01 02:01:09 CST 2020`
等等…
- 关于向MySQL存入日期简单说明一下(MySQL中有很多时间相关的数据类型,像date、datetime、time、timestamp、year,这里以date为例)
//"yyyy-MM-dd HH:mm:ss"
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = new Date();
String time = simpleDateFormat.format(date1);