一、Java中Date常见的get方法(大部分已经被弃用)
Date date = new Date();
date.getDate(); // 获取日期,当月的日期比如4月7号,得到的就是7
date.getYear(); //获取年,获取到的年要减去1900,比如2023,得到的就是123
date.getDay(); //获取星期,星期一为1,需要注意的是星期天获取到的为0
date.getMonth(); //获取月,获取到的月为实际月份减1,比如4月得到的数字为3
date.getHours(); //获取时,就是天的小时
date.getMinutes();//获取分,当前的分钟
date.getSeconds();// 获取秒,当前的秒
public static void main(String[] args) throws Exception {
// 定制日期格式
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//有一个字符串表示的日期
String dt_1 = "2023-04-8 15:32:12";
Date dt_2 = null;
try {
dt_2 = formater.parse(dt_1);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("获取日期:"+dt_2.getDate());
System.out.println("获取年:"+dt_2.getYear());
System.out.println("获取月:"+dt_2.getMonth());
System.out.println("获取星期:"+dt_2.getDay());
System.out.println("获取时:"+dt_2.getHours());
System.out.println("获取分:"+dt_2.getMinutes());
System.out.println("获取秒:"+dt_2.getSeconds());
}
* 测试结果
二、Date的构造方法(构造函数),不少已弃用
- 空构造方法,时间为当前时间
Date date=new Date();
- 使用时间戳构造,时间戳的类型为Long
Date date1=new Date();
System.out.println(date1);
Date date2=new Date(date1.getTime());
System.out.println(date2);
- 使用年月日构造Date
Date date=new Date(123,3,7);
- 使用年月日时分构造
Date date=new Date(123,3,7,0,0);
- 使用年月日时分秒构造
Date date=new Date(123,3,7,0,0,0);
三、使用 GregorianCalendar 构造Date对象
- 月份是从0开始的,0表示1月
- 天是从1开始的,1表示1号。如果使用0,会变成上个月最后一天
public static void main(String[] args) {
Calendar calendar = new GregorianCalendar(1900, 0, 0, 0, 0, 0);
Date date = calendar.getTime();
System.out.println(new SimpleDateFormat("yyyy年-MM月-dd日 HH时:mm分:ss秒").format(date).toString());
calendar.set(1900, 0, 1, 0, 0, 0);
date = calendar.getTime();
System.out.println(new SimpleDateFormat("yyyy年-MM月-dd日 HH时:mm分:ss秒").format(date).toString());
}
四、使用SimpleDateFormat 构造Date对象,对字符串进行处理
public static void main(String[] args) throws Exception {
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dt_1 = "2023-04-8 15:32:12";
Date dt_2 = null;
try {
dt_2 = formater.parse(dt_1);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("获取日期:"+dt_2.getDate());
System.out.println("获取年:"+dt_2.getYear());
System.out.println("获取月:"+dt_2.getMonth());
System.out.println("获取星期:"+dt_2.getDay());
System.out.println("获取时:"+dt_2.getHours());
System.out.println("获取分:"+dt_2.getMinutes());
System.out.println("获取秒:"+dt_2.getSeconds());
}
五、Java中Date类型获取年月日时分秒常用的两种方法
Calendar类,需要注意的地方都写了注释
public static void main(String[] args) throws Exception {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date()); //放入Date类型数据
System.out.println("获取年份:"+calendar.get(Calendar.YEAR));
System.out.println("获取月份:"+calendar.get(Calendar.MONTH)); //如果是4月得到的会是3,实际大部分的使用情况需要加一
System.out.println("获取日:"+calendar.get(Calendar.DATE));
System.out.println("时(12小时制):"+calendar.get(Calendar.HOUR));
System.out.println("时(24小时制):"+calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("分:"+calendar.get(Calendar.MINUTE));
System.out.println("秒:"+calendar.get(Calendar.SECOND));
System.out.println("一周的第几天:"+calendar.get(Calendar.DAY_OF_WEEK)); //从星期天开始算起的,星期天为第一天返回的一,星期五为第六天返回6
}
SimpleDateFormat类
public static void main(String[] args) {
System.out.println(new SimpleDateFormat("yyyy年-MM月-dd日 HH时:mm分:ss秒").format(new Date()).toString());
}
public static void main(String[] args) throws Exception {
String[] strNow1 = new SimpleDateFormat("yyyy-MM-dd").format(new Date()).toString().split("-");
Integer.parseInt(strNow1[0]);
Integer.parseInt(strNow1[1]);
Integer.parseInt(strNow1[2]);
String[] strNow2 = new SimpleDateFormat("hh:mm:ss").format(new Date()).toString().split(":");
Integer.parseInt(strNow2[0]);
Integer.parseInt(strNow2[1]);
Integer.parseInt(strNow2[2]);
String[] strNow3 = new SimpleDateFormat("HH:mm:ss").format(new Date()).toString().split(":");
Integer.parseInt(strNow3[0]);
Integer.parseInt(strNow3[1]);
Integer.parseInt(strNow3[2]);
}
其他
关于时间戳的介绍
- 时间戳是从中国时间1970年1月1日8时开始算起的,1000时间戳为1秒
System.out.println(new Date(0L));
通过年和月得到时间戳的方法(作者自己写的)
public static Long getDateByYearMonth(Integer year, Integer month) {
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dt_1 = year.toString() + "-" + month.toString() + "-01 00:00:00";
Date dt_2 = null;
try {
dt_2 = formater.parse(dt_1);
} catch (ParseException e) {
e.printStackTrace();
}
return dt_2.getTime();
}
java-阴历日期和阳历日期互相转换
Java输出某一年的日历(可改成输出某年某月的日历)
@JsonFormat导致后端传给前端之后,时间对不上
参考文档